sailan
# 作业一:自己试验一下菱形问题下的属性查找顺序
class A:
def a1(self):
print('a1')
class B(A):
def a1(self):
print('b1')
class C(A):
def a1(self):
print('c1')
class D(A):
def a1(self):
print('d1')
class E(B, C, D):
pass
obj = E()
obj.a1()
print(E.mro())
# 查找順序 [<class '__main__.E'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.D'>, <class '__main__.A'>, <class 'ob
# 作业二:在实现下述代码的基础上,引入
# 1、引入属性访问控制+property
# 2、引入继承与派生的概念来减少代码冗余
注意:要满足什么"是"什么的关系,不满足"是"的关系不要去继承
class OldBoy:
school = 'old_boy'
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def check_stu_info(self):
print(f'{self.school},{self.name},{self.gender}')
class Student(OldBoy):
def __init__(self, name, age, gender, stu_id):
OldBoy.__init__(self, name, age, gender)
self.__stu_id = stu_id
@property
def stu_id(self):
return self.__stu_id
def set_age(self, x):
if type(x) is not int:
print('請輸入數字')
return
self.age = x
class Teacher(OldBoy):
def __init__(self, name, age, gender, lv):
OldBoy.__init__(self, name, age, gender)
self.lv = lv
stu1 = Student('sailan', 20, 'male', 9527)
tea1 = Teacher('egon', 84, 'unknown', 1)
#
# 选课系统项目中涉及到诸多数据与功能,要求引入面向对象的思想对其进行高度整合
# # 1、学校数据与功能整合
# # 2、课程数据与功能进行整合
# # 3、学生数据与功能进行整合
# # 4、讲师数据与功能进行整合
# # 5、班级数据与功能进行整合
# ps:不会写的同学,可以先用普通的方式,先把数据与功能都给写好,再考虑基于面向对象的思想进行整合
#
# 数据部分:
# 校区的名字:如"老男孩上海校区"
# 校区的地址:如"上海虹桥"
#
# 班级名字
# 班级所在校区
#
# 学生的学校
# 学生的姓名
# 学生的年龄
# 学号
# 学生的性别
#
# 课程名字
# 课程周期
# 课程价格
#
# 老师的名字
# 老师的年龄
# 老师的薪资
# 老师的等级
#
#
# 功能部分:
# 校区创建完毕后,可以为每个校区创建班级
#
# 班级创建完毕后,可以为每个班级创建课程
#
# 学生创建完毕后,学生可以选择班级
#
# 老师创建完毕后,可以为学生打分
#
#