作业进阶

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

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

    def __init__(self, nickname, addr):
        self.nickname = nickname
        self.addr = addr
        self.classes = []

    def related_class(self, class_obj):

        self.classes.append(class_obj)

    def tell_class(self): # 改
        # 打印的班级的名字
        print(self.nickname.center(60,'='))
        # 打印班级开设的课程信息
        for class_obj in self.classes:
            class_obj.tell_course()




class Class:
    def __init__(self, name):
        self.name = name
        self.course = None

    def related_course(self, course_obj):
        # self.course = course_name
        self.course = course_obj

    def tell_course(self):
        print('%s' % self.name,end=" ")
        self.course.tell_info() # 打印课程的详细信息

# 二:班级




class Course:
    def __init__(self,name,period,price):
        self.name=name
        self.period=period
        self.price=price

    def tell_info(self):
        print('<课程名:%s 周期:%s 价钱:%s>' %(self.name,self.period,self.price))


class People:
    def __init__(self,name,age,sex):
        self.__name = name
        self.age = age
        self.sex = sex

    @property
    def name(self):
        return self.__name

    @name.setter
    def name(self, val):
        self.__name = val

    @name.deleter
    def name(self):
        print('不让删除')




class Student(People):
        def __init__(self, name, age, sex):
            People.__init__(self,name, age,sex)

        def tell_stu_info(self):
            print(f'学生姓名:{self.name} 学生年龄:{self.age} 学生性别:{self.sex}')







class Teacher(People):
        def __init__(self, name, age,sex ,salary, grade):
            People.__init__(self,name,age,sex)
            self.salary = salary
            self.grade = grade

        def tell_tea_info(self):
            print(f'老师姓名:{self.name} 老师年龄:{self.age} 老师薪资:{self.salary} 老师等级:{self.grade}')


students1=Student('张三',18,'男')
students1.name='zcc'

del students1.name
students1.tell_stu_info()


teacher1=Teacher('张老师',56,'男',5000,10)




# 创建课程
course_obj1=Course('python全栈开发','6mons',20000)
course_obj2=Course('linux运维','5mons',18000)
# 创建班级
class_obj1 = Class('脱产14期')
class_obj2 = Class('脱产15期')
class_obj3 = Class('脱产29期')


# 为班级关联课程对象
class_obj1.related_course(course_obj1)
class_obj2.related_course(course_obj2)
class_obj3.related_course(course_obj1)
# 创建学校
school_obj1=School('老男孩魔都校区','上海')
school_obj2=School('老男孩帝都校区','北京')



school_obj1.related_class(class_obj1)
school_obj1.related_class(class_obj2)

# 北京校区开了:脱产29期
school_obj2.related_class(class_obj3)

posted @ 2020-04-09 21:22  小子,你摊上事了  阅读(68)  评论(0)    收藏  举报