import pickle import uuid class People(object): school_name = "oldboy" def __init__(self, name, age, gender): self.__name = name self.__age = age self.__gender = gender self.u = uuid.uuid4() @property def name(self): return self.__name @name.setter def name(self, name): if type(name) is not str: print('必须传入str类型') return self.name = name @property def age(self): return self.__age @age.setter def age(self, age): if type(age) is not int: print('必须传入int类型') return self.age = age @property def gender(self): return self.__gender @gender.setter def gender(self, gender): if type(gender) is not str: print('必须传入str类型') return self.gender = gender # 保存数据 def save(self): with open("flies.pkl".format(self.u), "wb") as f1: pickle.dump("flies.pkl", f1) with open("flies.pkl".format(self.u), "rb") as f2: pickle.load(f2) # 定义一个学校类 class School(object): # 定义校区名 与 地址 教室列表 def __init__(self, nickname, addr): self.nickname = nickname self.addr = addr self.u = uuid.uuid4() self.classes = [] # 定义教室 def related_class(self, class_obj): self.classes.append(class_obj) # 定义打印教室信息 def tell_class(self): print(self.nickname.center(20, "-")) for class_obj in self.classes: class_obj.tell_course() # 定义一个教室类 class Class(object): # 定义教室名字 def __init__(self, name): self.name = name self.u = uuid.uuid4() self.course = None # 定义课程 def related_course(self, course_obj): self.course = course_obj # 打印课程信息 def tell_course(self): print("%s" % self.name, end=" ") self.course.tell_info() # 保存数据 def save(self): with open("flies.pkl".format(self.u), "wb") as f1: pickle.dump("flies.pkl", f1) with open("flies.pkl".format(self.u), "rb") as f2: pickle.load(f2) # 定义一个课程类 class Course(object): # 定义课程名字 周期 def __init__(self, name, period, price): self.name = name self.period = period self.price = price self.u = uuid.uuid4() def tell_info(self): print("课程名称:%s 课程周期:%s 课程价格:%s" % (self.name, self.period, self.price)) # 保存数据 def save(self): with open("flies.pkl".format(self.u), "wb") as f1: pickle.dump("flies.pkl", f1) with open("flies.pkl".format(self.u), "rb") as f2: pickle.load(f2) # 定义一个学生类 class Student(People): def __init__(self, number, name, age, gender): People.__init__(self, name, age, gender) self.number = number def tell_student(self): print("学号:%d 姓名:%s 年龄:%d 性别:%s " % (self.number, self.name, self.age, self.gender)) class Teacher(People): def __init__(self, name, age, gender, salary, level): People.__init__(self, name, age, gender) self.__salary = salary self.__level = level @property def salary(self): return self.__salary @salary.setter def salary(self, salary): if type(salary) is not int: print('必须传入int类型') return self.salary = salary @property def level(self): return self.__level @level.setter def level(self, level): if type(level) is not int: print('必须传入int类型') return self.level = level def score(self): print('老师名字:%s 老师年龄:%d ''老师性别:%s 老师工资:%d 老师等级:%d ' % (self.name, self.age, self.gender, self.salary, self.level)) # 创建学校 school_obj1 = School('老男孩魔都校区', '上海') school_obj2 = School('老男孩帝都校区', '北京') # School.save(school_obj1) # School.save(school_obj2) # 创建班级 class_ojb1 = Class("脱产14") class_ojb2 = Class("脱产15") school_obj1.related_class(class_ojb1) school_obj2.related_class(class_ojb2) Class.save(class_ojb1) Class.save(class_ojb2) # 创建课程 course_obj1 = Course("python", "6", "20000") course_obj2 = Course("linux", "5", "18000") class_ojb1.related_course(course_obj1) class_ojb2.related_course(course_obj2) school_obj1.tell_class() school_obj2.tell_class() Course.save(course_obj1) Course.save(course_obj2) # 创建学生 stu1 = Student(0, "kk", 12, "男") stu2 = Student(1, "cc", 11, "女") stu1.tell_student() stu2.tell_student() Student.save(stu1) Student.save(stu2) # 创建老师 tea = Teacher("egon", 18, "male", 3000, 10) Teacher.score(tea)
作业_4.9
猜你喜欢
转载自www.cnblogs.com/zhenghuiwen/p/12670242.html
今日推荐
周排行