재 작성 요구 사항 :
객체 지향 코드 기록 팽창 학생 클래스를 기반 # 1,
# 2를 첨가하고, 동작 직렬화되어야 직렬화 된
# 3의 ID를 이용하여 오브젝트 간의 관계
# 4 파일 후 트랜스에서 해당 ID 파일에서 발견 될 수있다 학교, 수업, 교육 과정, 학생 객체의 실행을 직렬화
클래스 정의 부분 :
가져 UUID 수입 피클 클래스 : 학교 school_name을 = " 老男孩" 데프 __init__ (자기, 별명, 주소) : self.nickname = 별명 self.address = 주소 self.classes = [] self.id = uuid.uuid4 () DEF relate_class (자기, class_obj) : self.classes.append (class_obj.id) 데프 (자동) 저장 : 개방 (F와 " DB \ 학교 \\ {self.id} .pickle " 모드 = " WB" )로서 F : pickle.dump (자기, F) DEF tell_class (자기) 인쇄 (self.nickname.center (50 " = " )) 에 대한 CLASS_ID 에서 : self.classes 열기 (F와 " DB \ 클래스 \ \ {CLASS_ID} .pickle " 모드 = " RB " ) F로 : class_obj = pickle.load (F) class_obj.tell_course () 클래스 클래스 : 데프 __init__ (자기 이름) : self.name = 이름 self.course= 없음 self.student = [] self.id = uuid.uuid4 () self.school = 없음 DEF relate_course (자기, course_obj) self.course = course_obj.id DEF relate_student (자기, student_obj) self.student.append (student_obj.id) DEF (자기) 저장 : 열기 (F " DB \ 클래스 \\ {} self.id .pickle " , MODE = " WB " F 등) pickle.dump (자기, F) DEF tell_course ( 자기) : 인쇄 ( "% -10s " %의 self.name 최종 = " " ) 로 열기 (F " DB \ 코스 \\ {} self.course .pickle " , MODE = " RB " )로서 F : 코스 = pickle.load (F) course.tell_info () 클래스 코스 : 데프 __init__ (자기, 이름, 시간, 비용) : self.name = 이름 self.time = 시간 self.cost = 비용 self.id = uuid.uuid4 () 데프 tell_info (자기) : 인쇄( " 课程名: % - 10 초时长: % S,费用%의 " % (self.name, self.time, self.cost)) 데프 (자동) 저장 : 개방과 (F " 물론 DB \ \\ { self.id} .pickle " 모드 = " WB " F 등) : pickle.dump (자체, F) 클래스 학생 : 데프 __init__ (자기, 이름, 나이, 성별, NUM) : self.name = 이름 self.age = 나이 self.gender = 성 self.num = NUM self.class_obj = 없음 self.id = uuid.uuid4 () 데프 tell_info (자동) : 인쇄 ( " 姓名: % - 5 초年龄%의性别: % S,学号: % - 5 초 " % (self.name, self.age, 자기 .gender, self.num)) 데프 chose_class (자기, class_obj) : self.class_obj = class_obj.id class_obj.student.append (self.id) 데프 자기 (저장) : 개방 (F와 " DB \ 학생 \\ { self.id} .pickle " , MODE = " WB " F 등) pickle.dump (자기, F) DEF tell_class (자기) 인쇄 (F "学生【self.name {}】班级信息" .center (50 " = " )) 오픈 (F " DB \ 클래스 \\ {} self.class_obj .pickle " , MODE = " RB " F 등) class_obj = pickle.load (F) class_obj.tell_course ()
부분의 예 :
# 객체 인스턴스화 STU1 = 학생 ( " 즈 질 " 18, " 말 " , 1118 ) S1 = 학교 ( " 돼지 캠퍼스 」 , 「상해 서가 " ) C1 = 클래스 ( " 돼지 기반 클래스 " ) C2 = 클래스 ( " 돼지 고급 클래스 " ) course1 = 코스, ( " 돼지의 자기 재배 " , " 6개월 " , 20000 ) course2 = 코스, ( "열 물고기 스타일을 잡아라 " ," 5개월 " 18,000은 ) # 관련 s1.relate_class (C1) s1.relate_class (C2) c1.relate_course (course1) c2.relate_course (course2) #의 학생들은 수업 선택 stu1.chose_class (C1) #을 파일로 s1.save () c1.save () c2.save () course1.save () course2.save () stu1.save () # 보기 s1.tell_class () c1.tell_course () stu1.tell_class ()