zoukankan      html  css  js  c++  java
  • day 20 作业

    作业

    1. 1 1 1

      1 2 1

      3 2 3

      查找顺序:子类--->父类

    2. G D A B

      F C B D A

      非菱形继承

      菱形继承

    3. 新式类

      继承了object的类及其子类,都是新式类

      经典类

      没有继承object的类及其子类,都是经典类

      区别:

      新式类继承了object类,python3中所有的类都是新式类,只有python2中才有经典类

      深度优先:

      直接先去找多个类最后继承的类,也就是object的子类

      广度优先:

      不找多个类最后继承的同一个类,直接去找下一个父类

    4. import hashlib
      import datetime
      import pickle
      
      
      class People:
          def __init__(self, name, gender, age):
              self.name = name
              self.gender = gender
              self.age = age
      
          def save(self):
              with open(f'{self.creat_id()}.pkl', 'wb') as f:
                  pickle.dump(self, f)
      
          def get_obj_by_id(self, tea_id):
              return pickle.load(open(f'{tea_id}.pkl', 'rb'))
      
      
      class Teacher(People):
          def __init__(self, name, gender, age, level, salary):
              super().__init__(name, gender, age)
              self.level = level
              self.salary = salary
      
          def tell_info(self):
              tea_id = self.creat_id()
              print(f'id:{tea_id}, name:{self.name}, gender:{self.gender}, age:{self.age}, level:{self.level}, salary:{self.salary}')
      
          def creat_id(self):
              m = hashlib.md5()
              m.update(str(datetime.datetime.today()).encode('utf8'))
              m.update(self.name.encode('utf8'))
              m.update(self.gender.encode('utf8'))
              m.update(str(self.age).encode('utf8'))
              m.update(self.level.encode('utf8'))
              m.update(str(self.salary).encode('utf8'))
              tea_id = m.hexdigest()
              return tea_id
      
      
      class Student(People):
          def tell_info(self):
              tea_id = self.creat_id()
              print(f'id:{tea_id}, name:{self.name}, gender:{self.gender}, age:{self.age}')
      
          def creat_id(self):
              m = hashlib.md5()
              m.update(str(datetime.datetime.today()).encode('utf8'))
              m.update(self.name.encode('utf8'))
              m.update(self.gender.encode('utf8'))
              m.update(str(self.age).encode('utf8'))
              tea_id = m.hexdigest()
              return tea_id
      
      
      tea1 = Teacher('tiny', 'male', 18, 'S', 20000)
      tea1.tell_info()
      # tea1.save()
      res = tea1.get_obj_by_id('ad415940992f716a042bcebfa11336f0')
      print(res)
      
      stu1 = Student('nick', 'male', 20)
      stu1.tell_info()
      # stu1.save()
      print(stu1.get_obj_by_id('aa6ac4009a17e1a415cbf5fbad7a3ab6'))
      
  • 相关阅读:
    SpringBoot security关闭验证
    BCryptPasswordEncoder 判断密码是否相同
    SpringBoot 通过jjwt快速实现token授权
    lombok的@Accessors注解3个属性说明
    lombok使用教程
    linux系统下将php和mysql命令加入到环境变量中的方法
    mysql常用的一些命令,用于查看数据库、表、字段编码
    配置windows 系统PHP系统环境变量
    MYSQL导入导出.sql文件
    windows下mysql 控制台操作
  • 原文地址:https://www.cnblogs.com/2222bai/p/11650202.html
Copyright © 2011-2022 走看看