4.8 작업

2 객체 지향 코드 기록 팽창 학생 클래스의 클래스에 기초하여 상기 동작 설명
3, 역 직렬화 동작의 첨가 순서
(4)는 ID 번호를 이용하여 오브젝트 간의 관계
5 파일 후 트랜스에서 해당 ID 파일에서 발견 될 수있다 학교, 수업, 교육 과정, 학생 객체의 실행을 직렬화

수입 피클 
수입 UUID 


클래스 학교 : 

    school_name는 '올드 보이'= 

    : DEF __init __ (자기, 별명, ADDR) 
        self.nickname = 별명 
        self.addr = 요지 
        self.uuid = uuid.uuid4 () 
        self.classes = [] 
        self.save_info () 


    DEF relate_class (자기, class_obj) 
        self.classes.append (class_obj.uuid) 
        self.save_info () 


    DEF (자기) save_info : 
        하고 .pkl 'f'db \\ school_file \\ (개방}와 {self.uuid , F 등의 'WB') 
            pickle.dump (자기, F) 


    DEF get_class (자기) 
        인쇄 (self.nickname.center (60 '=')) 
        #打印班级开班的课程信息
        self.classes에 대한 class_uuid : 
        를 연 (f'db \\ class_file \\ {} self.uuid하고 .pkl를 ','WB ')로서 F :
            : 오픈 (f'db \\ class_file \\ {} class_uuid하고 .pkl ','RB ') F와 같은 
               class_obj pickle.load = (F) 
               class_obj.get_course () 
               class_obj.get_student () 


클래스 분류 : 
    DEF __init __ (자체 이름) 
        self.name = 이름 
        self.course = 없음 
        self.students = [] 
        self.uuid uuid.uuid4 = () 
        self.save_info () 

    DEF relate_course (자기, course_obj) 
        self.course = course_obj.uuid 
        자체 .save_info () 

    DEF save_info (자기) 
            pickle.dump (자기, F) 

    DEF get_course (자기) 
        인쇄 ( '% S'% self.name 최종 = "")
        'F 등 (하고 .pkl', 'RB self.course {} f'db \\ course_file \\)를 연 
            course_obj pickle.load = (F) 
            () course_obj.course_info 


    DEF get_student (자기) 
        인쇄 (%' S '% self.name 최종 = "") 
        self.students에 대한 student_uuid : 
            연 상태 (f'db \\ student_file \\ {} student_uuid하고 .pkl'ㅂ 'RB') 
                student_obj = pickle.load ( F) 
                student_obj.student_info () 


코스 클래스 : 
    데프 __init __ (자기, 이름, 기간, 가격) : 
        self.name = 이름 
        self.period = 기간 
        self.price = 가격 
    데프 course_info (자기) : 
        self.uuid = UUID .uuid4 ()
        self.save_info () 

        인쇄 ( "<课程名% S时长% S价格% S> '% (self.name, self.period, self.price)) 

    DEF save_info (자기) 
        오픈 (F와' DB \\ course_file \\ {self.uuid}하고 .pkl ','F로 WB ') : 
            pickle.dump (자체, F) 



클래스 학생 : 
    데프 __init __ (자기, 이름, 나이, 성별) : 
        self.name = 이름 
        self.age = 나이 
        self.sex = 섹스 
        self.uuid = uuid.uuid4 () 
        self.my_class = 없음 
        self.my_course = 없음 
        self.save_info () 

    데프 student_info (자동) : 
        인쇄 ( '<学生名字%의年龄% S性别% S> '% (self.name, self.age, self.sex)) 

    DEF relate_class (자기, class_obj)
        self.my_class = class_obj.uuid 
        self.my_course = class_obj.UUID
        class_obj.students.append (self.uuid) 
        self.save_info () 
        class_obj.save_info () 

    데프 save_info (자동) : 
        개방과 (f'db \\ student_file \\ {self.uuid}하고 .pkl ','WB ') F로서 : 
            pickle.dump (자기, F)

  

# 캠퍼스 만들기 
school_obj1 = 학교 ( '오래된 소년 마법 캠퍼스', '상해') 
school_obj2 = 학교 ( '올드 보이즈 로얄 파크 캠퍼스', '베이징') 

# # 클래스 생성 
class_obj1 = 클래스 ( '풀 타임 14') 
class_obj2 = 클래스 ( '풀 타임 15') 
class_obj3 = 클래스 ( '풀 타임 29') 

# 상하이 캠퍼스가 오픈 : 14 풀 타임은 상하이 캠퍼스 풀 타임 (15) 열 
school_obj1.relate_class을 (class_obj1) 
school_obj1.relate_class (class_obj2) 
# 베이징 캠퍼스 개방 : 풀 타임 29 
school_obj2.relate_class (class_obj3) 

# 1, 교육 과정 생성 
course_obj1 = 코스 ( '파이썬 전체 스택 개발', '6mons', 20000) 
course_obj2 = 물론 ( '리눅스 운영 및 유지 보수', '5mons을', 18000) 
# 3, 관련 개체 클래스의 커리큘럼 
(course_obj1) class_obj1.relate_course 
class_obj2.relate_course (course_obj2) 
class_obj3.relate_course (course_obj1)

stu_obj1 학생 = ( '잭', 18 ', 말레) 
stu_obj2 학생 = ('에곤 ', 18'여성 ') 
stu_obj3 학생 = ('알렉스 ', 18'여성 ') 

stu_obj1.relate_class (class_obj1) 
stu_obj2. relate_class (class_obj2) 
stu_obj3.relate_class (class_obj3) 

school_obj1.get_class () 
school_obj2.get_class ()

  

추천

출처www.cnblogs.com/Tornadoes-Destroy-Parking-Lots/p/12663198.html