这里仔细的观察一下,这里谁覆盖谁,看的就是先用的谁
有的是hi要理解这些代码自己光学基础也不是很懂,不过随着你尝试着做项目,在各种各样的环境中你就会又越来越多的理解。现在一些更改入门的确实是不太好懂。
class Master(object):
def __init__(self):
self.kongfu = '[古法煎饼果子配方]'
def make_cake(self):
print(f'运用{self.kongfu}制作煎饼果子')
# 创建学校类
class School(Master):
def __init__(self):
self.kongfu = '[学校煎饼果子配方]'
def make_cake(self):
print(f'运用{self.kongfu}制作煎饼果子')
# 独创配方类
class Prentice(School):
def __init__(self):
self.kongfu = '[独创煎饼果子配方]'
def make_cake(self):
# 如果是先调用了⽗父类的属性和方法,⽗父类属性会覆盖子类属性,故在调用属性前,先调用自己子类的初始化
self.__init__()
print(f'运用{self.kongfu}制作煎饼果子')
# 调⽤用父类方法,但是为保证调用到的也是父类的属性,必须在调用方法前调⽤用父类的初始化
def make_master_cake(self):
Master.__init__(self)
Master.make_cake(self)
def make_school_cake(self):
School.__init__(self)
School.make_cake(self)
daqiu = Prentice()
daqiu.make_master_cake()
daqiu.make_school_cake()
daqiu.make_cake()



