4.8 --- orientada a objetos Ejercicio 2

 

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 ()

 

Supongo que te gusta

Origin www.cnblogs.com/zhubincheng/p/12663199.html
Recomendado
Clasificación