書き換え要件:
#1、オブジェクト指向のコード記述された拡張Studentクラスに基づいて、
#2を添加し、シリアル化操作デシリアライズされた
IDを使用してオブジェクト間の関連付け、#3
のファイルから、#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) DEF (自己)保存: オープン(Fと" DB \学校\\ {self.id} .pickle "、MODE = " WB" )Fとして: pickle.dump(自己、F) DEF :tell_class(自己) プリント(self.nickname.center(50、" = " )) のために CLASS_ID でself.classes: オープンと(F " DB \クラス\ \ {CLASS_ID} .pickle "MODE = " 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) デフ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(自己): プリント(" 课程名:% - 10S时长:%sの、费用:%sの"%(self.name、self.time、self.cost)) デフ(自己)割引: オープンと(F 「もちろんデシベル\ \\ { 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() DEF tell_info(自己): 印刷(" 姓名:% - 5S年龄:%S性别:%S、学号:% - 5S "%(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 =コース、("10魚のスタイルをキャッチ」、" 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()