作业 4/9

import uuid
import pickle
import os
# 功能部分:
#      校区创建完毕后,可以为每个校区创建班级
class Save():
    def save(self,path):
        with open(path + '{}_{}.pkl'.format(self.uid,self.name), 'wb') as f:
            pickle.dump(self, f)
class School(Save):
    def __init__(self,name,adr):
        self.uid = uuid.uuid3(uuid.NAMESPACE_DNS,name)
        self.name = name
        self.adr = adr
        self.classes_uid = []
    def add_class(self,class_obj):
        self.classes_uid.append(class_obj.uid)
    def look_school(self):
        print(self.name.center(50,'='))
        for classw in self.classes_uid:
            if os.path.exists('{}.pkl'.format(classw)):
                while os.path.getsize('{}.pkl'.format(classw)):
                    with open('{}.pkl'.format(classw),'rb') as f:
                        class1 = pickle.load(f)
                    class1.look_class()
                    break



class Class(Save):
    def __init__(self,name):
        self.uid = uuid.uuid3(uuid.NAMESPACE_DNS,name)
        self.name = name
        self.courses_uid = []
        self.students = []
    def add_course(self,course_obj):
        self.courses_uid.append(course_obj.uid)
    def look_class(self):
        print(self.name)
        for cou1 in self.courses_uid:
            if os.path.exists('{}.pkl'.format(cou1)):
                while os.path.getsize('{}.pkl'.format(cou1)):
                    with open('{}.pkl'.format(cou1), 'rb') as f:
                        cou = pickle.load(f)
                    cou.look_course()
                    break


#      班级创建完毕后,可以为每个班级创建课程
#
#      学生创建完毕后,学生可以选择班级
class Course(Save):
    def __init__(self,name,price,time):
        self.uid = uuid.uuid3(uuid.NAMESPACE_DNS,name)
        self.name = name
        self.price = price
        self.time = time
    def look_course(self):
        print('课程名称:{} 课程价格:{} 课程周期:{}'.format(self.name,self.price,self.time))



class Person(Save):
    def __init__(self,name,age,sex):
        self.__name = name
        self.__age = age
        self.__sex = sex

    @property
    def data(self):
        return self.__name,self.__age,self.__sex

    @property
    def name(self):  # obj1.name
        return


    @name.setter
    def name(self,name_new):
        if type(name_new) != str:
            return
        self.__name = name_new

    @property
    def age(self):  # obj1.name
        return

    @age.setter
    def age(self, age_new):
        if type(age_new) != int:
            return
        self.__age = age_new


    @property
    def sex(self):  # obj1.name
        return


    @sex.setter
    def sex(self,sex_new):
        if type(sex_new) != str:
            return
        if sex_new.lower() not in ['male','female']:
            return
        self.__sex = sex_new



class Student(Person):
    def __init__(self,name,age,sex):
        Person.__init__(self,name,age,sex)
        self.uid = uuid.uuid3(uuid.NAMESPACE_DNS,name)
        self.__classes = []
        self.__cores = None
    def choose_class(self,class_obj):
        self.__classes.append(class_obj.uid)
    def look_class(self):
        print(self.__classes)


#      老师创建完毕后,可以为学生打分

class Teacher(Person):
    def __init__(self,name,age,sex):
        Person.__init__(self,name,age,sex)
        self.uid = uuid.uuid3(uuid.NAMESPACE_DNS,name)
    def set_core(self,stu_obj,core):
        str_obj.__Student__cores = core

猜你喜欢

转载自www.cnblogs.com/pythonwl/p/12668457.html