requisitos de reescritura:
# 1, basado en el código de expansión escrito clase Student orientado a objetos
# 2, se añadió y deserializar serializado operación
# 3, la asociación entre los objetos utilizando el ID
# 4, se puede encontrar en los archivos de identificación correspondientes, desde el archivo y luego trans serializar la ejecución de las escuelas, clases, cursos, objetos de estudiantes
parte de definición de clase:
importar uuid importación salmuera clase escolar: school_name = " 老男孩" def __init__ (auto, apodo, dirección): self.nickname = apodo self.address = dirección self.classes = [] self.id = uuid.uuid4 () def relate_class (auto, class_obj): self.classes.append (class_obj.id) def Guardar (auto): con (f abierta " db \ escuela \\ {} self.id .pickle " , modo = " wb" ) Como f: pickle.dump (self, f) def tell_class (self): impresión (self.nickname.center (50, " = " )) para id_clase en self.classes: con (f abierto " db \ clase \ \ {} id_clase .pickle "modo = " rb " ) como f: class_obj = pickle.load (f) class_obj.tell_course () clase clase: def __init__ (self, nombre): self.name = nombre self.course= Ninguno self.student = [] self.id = uuid.uuid4 () self.school = Ninguno def relate_course (self, course_obj): self.course = course_obj.id def relate_student (self, student_obj): self.student.append (student_obj.id) def Guardar (self): con abierto (f " db \ clase \\ {self.id} .pickle " , modo = " wb " ) como f: pickle.dump (self, f) def tell_course ( self): print ( "% -10S " % self.name, final = " " ) con abierto (f " db \ curso \\ {self.course} .pickle "modo = " rb " ) como f: curso = pickle.load (f) course.tell_info () de clase del curso: def __init__ (self, nombre, tiempo, costo): self.name = nombre self.time = tiempo self.cost = costo self.id = uuid.uuid4 () def tell_info (auto): impresión( " 课程名:% - 10s时长:% s,费用:% s " % (self.name, self.time, self.cost)) def Guardar (auto): con abierta (f " db \ supuesto \\ { self.id} .pickle "modo = " wb " ) como f: pickle.dump (auto, f) la clase del alumno: def __init__ (self, nombre, edad, sexo, num): self.name = nombre self.age = edad self.gender = género self.num = num self.class_obj = Ninguno self.id = uuid.uuid4 () def tell_info (self): impresión ( " 姓名:% - 5s年龄:% s性别:% s,学号:% - 5s " % (self.name, self.age, auto .gender, self.num)) def chose_class (auto, class_obj): self.class_obj = class_obj.id class_obj.student.append (self.id) def Guardar (auto): con (f abierta " db \ \\ {estudiante self.id} .pickle "modo = " wb " ) como f: pickle.dump (self, f) def tell_class (self): de impresión (f "学生【{self.name}】班级信息" .center (50, " = " )) con abierto (f " db \ clase \\ {self.class_obj} .pickle "modo = " rb " ) como f: class_obj = pickle.load (f) class_obj.tell_course ()
Los ejemplos de restos:
# Instancias de un objeto Stu1 = Estudiantes ( " Jil " , 18, " Mal " , 1118 ) s1 = Escuela ( " Campus de cerdo " , " Shanghai Xuhui " ) c1 = class ( " Foundation Classes cerdo " ) c2 = Clase ( " conejillo de clase avanzada " ) course1 = Curso, ( " auto-cultivo de cerdo " , " 6 meses " , 20000 ) course2 = Curso, ( "Coger diez estilo de pescado " ," 5 meses " , de 18.000 ) # asociada s1.relate_class (c1) s1.relate_class (c2) c1.relate_course (course1) c2.relate_course (course2) # los estudiantes eligen clases stu1.chose_class c1) ( # en un archivo s1.save () c1.save () c2.save () course1.save () course2.save () stu1.save () # Ver s1.tell_class () c1.tell_course () stu1.tell_class ()