import uuid
import pickle
class School:
school_name = 'OLDBOY'
def __init__(self,nickname,address):
self.uid = str(uuid.uuid4())
self.nickname = nickname
self.address = address
self.classes = []
def addclass(self,class_uid):
self.classes.append(class_uid)
def tell_class(self):
print(self.nickname.center(60, '='))
for class_uid in self.classes:
with open(f'{class_uid}.pkl','rb')as f:
res = pickle.load(f)
res.tell_class()
def save(self):
with open(f'{self.uid}.pkl','wb')as f:
pickle.dump(self,f)
class Class:
def __init__(self,name):
self.uid = str(uuid.uuid4())
self.name = name
self.course = None
def addcourse(self,course_uid):
self.course = course_uid
def tell_class(self):
print('班级名:%s '%(self.name),end='')
with open(f'{self.course}.pkl','rb')as f:
res = pickle.load(f)
res.tell_course()
def save(self):
with open(f'{self.uid}.pkl', 'wb')as f:
pickle.dump(self, f)
class Course:
def __init__(self, name, cycle, price):
self.uid = str(uuid.uuid4())
self.name = name
self.cycle = cycle
self.price = price
def tell_course(self):
print('课程名称:%s 课程周期:%s 课程价格:%s'%(self.name,self.cycle,self.price))
def save(self):
with open(f'{self.uid}.pkl', 'wb')as f:
pickle.dump(self, f)
class Student:
def __init__(self,name,age,id,sex):
self.name = name
self.age = age
self.uid = str(uuid.uuid4())
self.sex = sex
self.score = 0
self.course_uid = None
def choice(self,course_uid):
self.course_uid = course_uid
def tell_student(self):
print('id:%s 姓名:%s 年龄:%s 性别:%s 分数:%s '%(self.uid,self.name,self.age,self.sex,self.score),end='')
def save(self):
with open(f'{self.uid}.pkl', 'wb')as f:
pickle.dump(self, f)
class Teacher:
def __init__(self,name,age,salary,leve):
self.uid = str(uuid.uuid4())
self.name = name
self.age = age
self.salary = salary
self.leve = leve
def score(self,student_obj,grade):
student_obj.score = grade
def tell_teacher(self):
print('姓名:%s 年龄:%s 薪资:%s 等级:%s '%(self.name,self.age,self.salary,self.leve),end='')
def save(self):
with open(f'{self.uid}.pkl', 'wb')as f:
pickle.dump(self, f)
def get(id):
with open(f'{id}.pkl','rb')as f:
res = pickle.load(f)
print(res.__dict__)
#创建学校对象
school_obj = School('老男孩魔都校区','上海')
#创建班级对象
class_obj = Class('14期')
class_obj2 = Class('15期')
#创建课程对象
course_obj = Course('python开发','5个月',1000)
course_obj2 = Course('luinex开发','1个月',10000)
#将班级对象的uid存到学校对象中
school_obj.addclass(class_obj.uid)
school_obj.addclass(class_obj2.uid)
#将课程对象的uid存到班级对象中
class_obj.addcourse(course_obj.uid)
class_obj2.addcourse(course_obj2.uid)
#保存对象
school_obj.save()
class_obj.save()
class_obj2.save()
course_obj.save()
course_obj2.save()
#打印数据
school_obj.tell_class()
#从文件中根据uid去出数据
get(school_obj.uid)
get(class_obj.uid)
get(course_obj.uid)
#创建学生对象
stu1 = Student('张三',18,2017050222,'男')
#选课
stu1.choice(course_obj.uid)
teach1 = Teacher('李四',18,20000,'特级教师')
teach1.score(stu1,90)
stu1.save()
teach1.save()
stu1.tell_student()