zoukankan      html  css  js  c++  java
  • day29作业

    # 作业一:自己试验一下菱形问题下的属性查找顺序
    class G(object):
        def test(self):
            print('from G')
    
    class E(G):
        def test(self):
            print('from E')
    
    class F(G):
        def test(self):
            print('from F')
    
    class B(E):
        def test(self):
            print('from B')
    
    class C(F):
        def test(self):
            print('from C')
    
    class D(G):
        def test(self):
            print('from D')
    
    class A(C, B, D):
        pass
    
    print(A.mro())
    # [<class '__main__.A'>, <class '__main__.C'>,
    # <class '__main__.F'>, <class '__main__.B'>,
    # <class '__main__.E'>, <class '__main__.D'>,
    # <class '__main__.G'>, <class 'object'>]
    
    # 作业二:在昨天作业的基础之上
    # #    1、引入属性访问控制+property
    # #    2、引入继承与派生的概念来减少代码冗余
    #         注意:要满足什么"是"什么的关系,不满足"是"的关系不要去继承
    import uuid
    import pickle
    class N_id:
         uuid = uuid.uuid4()
         def __init__(self,uuid,name):
             self.n_id = uuid
             self.name = name
         def save(self):
             with open(f"{self.n_id}{self.name}.pkl", "w", encoding="utf-8")as f:
                 pickle.dump(self, f)
    
         def open(self):
             with open(f"{self.n_id}{self.name}.pkl", "r", encoding="utf-8")as f:
                 data = pickle.load(f)
                 print(data)
    
    class School(N_id):
        re_name = "老男孩培训"
        uuid = uuid.uuid4()
        def __init__(self,address,uuid,name):
            self.address = address
            N_id.__init__(self,uuid,name)
            self.class_lis = []
    
        def class_act(self,class_obj):
            self.class_lis.append(f"{class_obj.n_id}{class_obj.name}")
        @property
        def show_shcool(self):
            print(self.name)
            for i in self.class_lis:
                with open(f"{i}.pkl","w",encoding="utf-8")as f:
                    data = pickle.load(f)
                    print(data)
    
    class Class(N_id):
        def __init__(self,name):
            N_id.__init__(self,uuid,name)
            self.course_lis = None
    
        def course_act(self,course_obj):
            self.course_lis = f"{course_obj.n_id}{course_obj.name}"
    
        @property
        def show_class_info(self):
            print("%s"%self.name,end="")
            with open(f"{self.course_lis}.pkl", "r", encoding="utf-8")as f:
                data = pickle.load(f)
                print(data)
    
    class Course(N_id):
        def __init__(self,uuid,name,date,price):
            N_id.__init__(self,uuid,name)
            self.date = date
            self.price = price
    
        @property
        def show_course(self):
            print("名字%s,周期%s,价格%s"%(self.name,self.date,self.price))
    
    class Student(N_id):
        def __init__(self,uuid,name,age,id,sex):
            N_id.__init__(self,uuid,name)
            self.age = age
            self.id = id
            self.sex = sex
            self.class_choose = None
            self.score = None
    
        def choose(self,class_obj):
            self.class_obj = class_obj.n_id
    
    class Teacher(N_id):
        def __init__(self,uuid,name,age,salaery,level):
            N_id.__init__(self,uuid,name)
            self.age = age
            self.salaery = salaery
            self.level = level
            self.score = None
        def score_stu(self,score,stu_obj):
            self.score = score
            stu_obj.score = self.score
    
  • 相关阅读:
    matplotlib
    CNN中feature map、卷积核、卷积核个数、filter、channel的概念解释,以及CNN 学习过程中卷积核更新的理解
    Batch Normlization原理
    pycharts
    stm 32 LED(寄存器版本)
    stm32 滴答时钟实现较准时延时功能
    LFS笔记一:从LFS网站获取资源
    ubuntu 12.04编译安装linux3.6.10内核笔记
    stm32 外部事件<按键>中断输入实现过程<寄存器>
    stm32 中断几个库函数实现过程分析。
  • 原文地址:https://www.cnblogs.com/yding/p/12669842.html
Copyright © 2011-2022 走看看