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