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'))

猜你喜欢

转载自www.cnblogs.com/2222bai/p/11650202.html