day26练习
类与对象测验 1、定义学校类,实例化出:北京校区、上海校区两个对象 校区独有的特征有: 校区名=“xxx” 校区地址={'city':"所在市",'district':'所在的区'} 多们课程名=['xxx','yyy','zzz'] 多个班级名=['xxx','yyy','zzz']
校区可以:
2、定义出班级类,实例化出两个班级对象 班级对象独有的特征: 班级名=‘xxx’ 所属校区名=‘xxx’ 多门课程名=['xxx','yyy','zzz'] 多个讲师名=['xxx','xxx','xxx']
班级可以: 1、查看本班所有的课程 2、查看本班的任课老师姓名
3、定义课程类,实例化出python、linux、go三门课程对象 课程对象独有的特征: 课程名=‘xxx’ 周期=‘3mons’ 价格=3000
课程对象可以: 1、查看课程的详细信息
4、定义学生类,实例化出张铁蛋、王三炮两名学生对象 学生对象独有的特征: 学号=10 名字=”xxx“ 班级名=['xxx','yyy'] 分数=33
学生可以: 1、选择班级 3、注册,将对象序列化到文件
5、定义讲师类,实例化出egon,lqz,alex,wxx四名老师对象 老师对象独有的特征: 名字=“xxx” 等级=“xxx”、 老师可以: 1、修改学生的成绩
import pickle class Course: def __init__(self,name,period,price): self.__name = name self.__period = period self.__price = price def show_info(self): print('<course:%s><period:%s><price:%s>' %(self.__name,self.__period,self.__price)) @property def name(self): return self.__name @name.setter def name(self,name): self.__name = name @property def period(self): return self.__period @period.setter def period(self,period): self.__period=period @property def price(self): return self.__price @price.setter def price(self,price): self.__price = price class Student: def __init__(self,id,name,score,cls=[]): self.id =id self.name = name self.cls =cls self.score =score def choose_cls(self,cls): self.cls.append(cls) def regist(self): with open(r'%s'%self.name,'wb') as f: pickle.dump(self,f) class Teacher: def __init__(self,name,level): self.name = name self.level = level def mod_score(self,stu,score): stu.score = score class Cls: def __init__(self,name,school,courses=[],teachers=[]): self.name = name self.school =school self.courses = courses self.teachers = teachers def show_all_course(self): for i in self.courses: print('<name %s> <period: %s> <price:%s>' %(i.name,i.period,i.price)) def show_all_teacher(self): for i in self.teachers: print('<name:%s><level:%s>'%(i.name,i.level)) class School: def __init__(self,name,city,district,courses=[],clss=[]): self.name = name self.address = {"city":city,"district":district} self.courses = courses self.clss = clss def create_clss(self,name,courses=[],teachers=[]): cls = Cls(name,self.name,courses,teachers) self.clss.append(cls) def show_cls_name(self): for i in self.clss: print(i.name) def create_course(self,name,period,price): cou = Course(name,period,price) self.courses.append(cou) def show_courses(self): for i in self.courses: print(i.name) bjschool = School('北京校区','北京','三里桥') shschool = School('上海校区','上海','浦东新区') bjschool.create_clss('班级1') shschool.create_course('java','3mon',3000) bjschool.show_cls_name() shschool.show_courses() course1 = Course('python','3mon',3000) course2 = Course('linux','3mon',3000) course3 = Course('go','3mon',3000) course1.show_info() css1 =[course1,course2] css2=[course1,course3] st1 =Student(1,'张铁蛋',66,css1) st2 =Student(2,"王三炮",69,css2) egon =Teacher('egon',10) lqz = Teacher('lqz',8) alex =Teacher('alex',10) egon.mod_score(st1,100) t1 = [egon] t2 =[lqz,alex] c1=Cls('python4',shschool.name,courses=css1,teachers=t2) c2 =Cls('linux',bjschool.name,css2,t1) c1.show_all_course() c2.show_all_teacher() st1.choose_cls(c1) st1.regist()
结果:
""" 班级1 java <course:python><period:3mon><price:3000> <name python> <period: 3mon> <price:3000> <name linux> <period: 3mon> <price:3000> <name:egon><level:10> """