Rewrite requirements:
# 1, based on object-oriented code written expansion Student class
# 2, was added and deserialize serialized operation
# 3, the association between the objects using the id
# 4, can be found in the corresponding id files, from the file and then trans serialize the execution of the schools, classes, courses, student objects
Class definition part:
import uuid import pickle class School: school_name = " Old Boy " def __init__(self,nickname,address): self.nickname = nickname self.address = address self.classes = [] self.id = uuid.uuid4() def relate_class(self,class_obj): self.classes.append(class_obj.id) def save(self): with open(f"db\school\\{self.id}.pickle",mode="wb") as f: pickle.dump(self,f) def tell_class(self): print(self.nickname.center(50,"=")) for class_id in self.classes: with open(f"db\class\\{class_id}.pickle", mode="rb") as f: class_obj = pickle.load(f) class_obj.tell_course() class Class: def __init__(self,name): self.name = name self.course = None self.student = [] self.id = uuid.uuid4() self.school = None def relate_course(self,course_obj): self.course = course_obj.id def relate_student(self,student_obj): self.student.append(student_obj.id) def save(self): with open(f"db\class\\{self.id}.pickle",mode="wb") as f: pickle.dump(self,f) def tell_course(self): print("%-10s " %self.name,end=" ") with open(f"db\course\\{self.course}.pickle",mode="rb") as f: course = pickle.load(f) course.tell_info() class Course: def __init__(self,name,time,cost): self.name = name self.time = time self.cost = cost self.id = uuid.uuid4() DEF tell_info (Self): Print ( " Course name:% - 10s Duration:% s, fee:% S " % (self.name, self.time, self.cost)) def save(self): with open(f"db\course\\{self.id}.pickle",mode="wb") as f: pickle.dump(self,f) class Student: def __init__(self,name,age,gender,num): self.name = name self.age = age self.gender = gender self.num = whether self.class_obj = None self.id = uuid.uuid4() DEF tell_info (Self): Print ( " Name:% - 5s Age:% s Gender:% s, student number:% - 5s " % (self.name, self.age, self.gender, self.num)) def chose_class(self,class_obj): self.class_obj = class_obj.id class_obj.student.append(self.id) def save(self): with open(f"db\student\\{self.id}.pickle", mode="wb") as f: pickle.dump(self, f) DEF tell_class (Self): Print (F " Student {self.name} {} class information " .center (50, " = " )) with open(f"db\class\\{self.class_obj}.pickle",mode="rb") as f: class_obj = pickle.load(f) class_obj.tell_course()
Examples of moieties:
# Instantiate an object STU1 = Student ( " Jil " , 18 is, " Mal " , 1118 ) s1 = School ( " Pig Campus " , " Shanghai Xuhui " ) c1 = Class ( " Pig foundation classes " ) c2 = Class ( " Pig Advanced Class " ) course1 = Course, ( " pig self-cultivation " , " . 6 months " , 20000 ) course2 = Course, ( " fish capture ten style " , " . 5 months " , 18000 ) # Association s1.relate_class (c1) s1.relate_class(c2) c1.relate_course(course1) c2.relate_course(course2) # Students choose classes stu1.chose_class (c1) # Stored in the file s1.save () c1.save() c2.save() course1.save() course2.save() stu1.save() # View s1.tell_class () c1.tell_course() stu1.tell_class()