zoukankan      html  css  js  c++  java
  • python每日作业4/9

    作业一:自己试验一下菱形问题下的属性查找顺序

    作业二:在昨天作业的基础之上
    # 1、引入属性访问控制+property
    # 2、引入继承与派生的概念来减少代码冗余
    注意:要满足什么"是"什么的关系,不满足"是"的关系不要去继承

    作业三:选做作业,本周内完成,在作业二的基础上编写业务逻辑
    提供三个角色操作:
    1 学员视图:可以注册, 交学费, 选择班级,
    2 讲师视图:讲师可管理自己的班级, 上课时选择班级, 查看班级学员列表 , 修改所管理的学员的成绩
    3 管理视图:创建讲师, 创建班级,创建课程

    import uuid
    import pickle
    import os
    
    
    
    class School():
        def __init__(self,name,addr):
            self.name = name
            self.addr = addr
            self.classes_uid = []
            self.uid = uuid.uuid3(uuid.NAMESPACE_DNS, name)
    
        def add_class(self,class_obj):
            self.classes_uid.append(class_obj.uid)
    
        @property
        def show_school(self):
            print(self.name.center(50,'='))
            for class_file in self.classes_uid:
                if os.path.exists('{}.pkl'.format(class_file)):
                    with open('{}.pkl'.format(class_file),'rb') as f:
                        class1 = pickle.load(f)
                    class1.show_class()
    
        @property
        def save(self):
            with open('{}.pkl'.format(self.uid), 'wb') as f:
                pickle.dump(self, f)
            with open('uid','a',encoding='utf-8') as f:
                f.write('{}
    '.format(str({self.name:self.uid})))
    
    class Class():
        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 show_class(self):
            print(self.name)
            for cou1 in self.courses_uid:
                if os.path.isfile('{}.pkl'.format(cou1)):
                    with open('{}.pkl'.format(cou1), 'rb') as f:
                        cou = pickle.load(f)
                    cou.show_course()
    
        @property
        def save(self):
            with open('{}.pkl'.format(self.uid), 'wb') as f:
                pickle.dump(self, f)
    
    
    class Course():
        def __init__(self,name,price,time):
            self.uid = uuid.uuid3(uuid.NAMESPACE_DNS,name)
            self.name = name
            self.price = price
            self.time = time
        def show_course(self):
            print('课程名称:{} 课程价格:{} 课程周期:{}'.format(self.name,self.price,self.time))
    
        @property
        def save(self):
            with open('{}.pkl'.format(self.uid), 'wb') as f:
                pickle.dump(self,f)
    
    class People:
        def __init__(self,name,age,sex):
            self.uid = uuid.uuid3(uuid.NAMESPACE_DNS, name)
            self.name = name
            self.age = age
            self.sex = sex
    
    class Student(People):
        def __init__(self,name,age,sex):
            People.__init__(self,name,age,sex)
            self.classes = []
            self.cores = None
        def choose_class(self,class_obj):
            self.classes.append(class_obj)
    
        @property
        def show_class(self):
            for i in self.classes:
                i.show_class()
    
        @property
        def save(self):
            with open('{}.pkl'.format(self.uid), 'wb') as f:
                pickle.dump(self, f)
    
    
    class Teacher(People):
    
        def set_core(self,stu_obj,core):
            str_obj.cores = core
    
        @property
        def save(self):
            with open('{}.pkl'.format(self.uid), 'wb') as f:
                pickle.dump(self, f)
    
    school_shanghai = School('魔都校区','上海')
    class1 = Class('上海14期')
    class2 = Class('上海15期')
    course1 = Course('python全栈',20000,'6 mons')
    course2 = Course('linux运维',18000,'6 mons')
    class1.add_course(course1)
    class2.add_course(course2)
    
    school_shanghai.add_class(class1)
    school_shanghai.add_class(class2)
    stu1=Student("egon",18,"man")
    stu1.choose_class(class1)
    
    
    course1.save
    course2.save
    class1.save
    class2.save
    stu1.save
    school_shanghai.show_school
    stu1.show_class
    
    
    '''
    执行结果
    =======================魔都校区=======================
    上海14期
    课程名称:python全栈 课程价格:20000 课程周期:6 mons
    上海15期
    课程名称:linux运维 课程价格:18000 课程周期:6 mons
    上海14期
    课程名称:python全栈 课程价格:20000 课程周期:6 mons
    '''
  • 相关阅读:
    为什么叫Windows 7 ?
    关于多线程生命周期原理
    关于浏览器创建XMLHttpRequest对象
    关于ajax异步加载XML例子
    关于多线程简单原理
    指针和指针的引用
    linux学习点滴
    GCC,GDB,Makefile
    妙语集锦
    uc/os内存管理的理解
  • 原文地址:https://www.cnblogs.com/baicai37/p/12669342.html
Copyright © 2011-2022 走看看