zoukankan      html  css  js  c++  java
  • python基础学习-day29==课后作业练习

    一、今日作业====封装作业

    作业二:在昨天作业的基础之上
    # 1、引入属性访问控制+property
    # 2、引入继承与派生的概念来减少代码冗余
    注意:要满足什么"是"什么的关系,不满足"是"的关系不要去继承

    作业三:选做作业,本周内完成,在作业二的基础上编写业务逻辑
    提供三个角色操作:
    1 学员视图:可以注册, 交学费, 选择班级,
    2 讲师视图:讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
    3 管理视图:创建讲师, 创建班级,创建课程

    # 作业一:
    class X(object):
        def test(self):
            print('from X')
        pass
    
    
    class Y(X):
        def test(self):
            print('from Y')
        pass
    
    
    class Z(X):
        # def test(self):
        #     print('from Z')
        pass
    
    
    class A(Z, Y):
        # def test(self):
        #     print('from A')
        pass
    
    #
    print(A.mro())  # 类D以及类D的对象访问属性都是参照该类的mro列表
    # 输出:[<class '__main__.D'>, <class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>]
    
    obj = A()
    obj.test()        # from Y
    
    # 查找顺序:A ==> Z ==> Y ==> X ==> object
    
    
    
    # 作业二:
    import uuid
    import pickle
    
    
    class Info:
        def __init__(self, name):
            self.name = name
            self.uid = str(uuid.uuid4())
    
        @property
        def save(self):
            with open(f'info/{self.uid}.pickle', mode='wb')as f:
                pickle.dump(self, f)
    
        @property
        def get(self):
            with open(f'info/{self.uid}.pickle', mode='rb')as f:
                res = pickle.load(f)
                print(res.__dict__)
    #学校类
    class School:
        def __init__(self,school_name,school_address):
            self.school_name=school_name
            self.school_address=school_address
            #一个校区可以存放多个班级,在实例化学校类得到对象时,初始化班级列表
            self.classes_list=[]
    
        def create_classes(self,classes_name):
            self.classes_list.append(classes_name)
            #调用班级类,得到班级对象,并返回给调用者
            cls_obj=Classes(classes_name,self.school_name)
            return cls_obj
    
    #1.调用类实例化得到学校对象
    school_obj=School('老男孩校区','中国上海市')
    #2.通过学校对.create_classes方法来创建班级
    cla_obj=school_obj.create_classes('上海14期')
    #3.班级对象
    
    #班级类
    class Classes:
        pass
    #课程类
    class Course:
        pass
    #学生类
    class Student:
        pass
    #讲师类
    class Teacher:
        pass
  • 相关阅读:
    DevExpress第三方控件之ASPxGridView
    单一职责原则(SRP)
    .NET 4 并行(多核)编程系列之一入门介绍
    .NET 分布式架构开发实战之二
    .NET 分布式架构开发实战之四
    .NET 分布式架构开发实战之三
    .NET 分布式架构开发实战之一
    .NET 4 并行(多核)编程系列之三
    .NET 4 并行(多核)编程系列之四
    .NET 分布式架构开发实战五
  • 原文地址:https://www.cnblogs.com/dingbei/p/12670145.html
Copyright © 2011-2022 走看看