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