![]()
1、类与类的关系
依赖关系:给一个类的方法传了一个参数,此参数是另一个类的对象(类名)
e1 = Elphant('大象')
media = Refrigerator('美的')
e1.open(media)
关联关系 聚合关系 组合关系
class Boy:
def __init__(self, name, girlfriend=None):
self.name = name
self.girlfriend = girlfriend
def have_a_dinner(self):
if self.girlfriend:
print('%s has dinner with %s' % (self.name, self.girlfriend.name))
def append_girl(self, girl):
self.girlfriend = girl
def remove_girl(self):
self.girlfriend = None
class Girl:
def __init__(self, name)
self.name = name
# 起初创业没有女朋友
b = Boy('alex')
b.have_a_dinner()
# 突然有一天拆迁有女朋友了
g = Girl('如花')
b.append_girl(g)
b.have_a_dinner()
class School:
def __init__(self, name, address):
self.name = name
self.address = address
self.teacher_list = []
def append_teacher(self, teacher):
self.teacher_list.append(teacher)
class Teacher:
def __init__(self, name, comment, school):
self.name = name
self.comment = comment
self.school = school
def check_address(self):
print('%s 在%s 办公'%(self.name,self.school.address))
beijing = School('老男孩北京校区','美丽富饶的沙河')
shanghai = School('老男孩上海校区','上海漳江新区')
shenzhen = School('老男孩深圳校区','南山区平山村儿')
t1 = Teacher('太白','优秀',beijing)
t2 = Teacher('景女神','优秀',beijing)
t3 = Teacher('文周','优秀',beijing)
beijing.append_teacher(t1)
beijing.append_teacher(t2)
beijing.append_teacher(t3)
for i in beijing.teacher_list:
print(i.name)
2、多继承:新式类,c3算法
![]()
[A] + merge([B,D,O],[B,E,O],[C,E,O],[C,F,O]) # 列表第一位为表首,表首外为表尾,如果表尾没有表首的内容,则表首提取
# print(A.__mro__) 就可以打印顺序
# super 也是遵循mro 顺序