求助一个子类同名继承父类的函数调用问题
本帖最后由 sanyyoyo 于 2020-2-8 14:52 编辑class Master(object): #父类Maser
def __init__(self):
self.kongfu = '[古法煎饼果子配方]'
def make_cake(self):
print(f'运用{self.kongfu}制作煎饼果子')
class School(object):#父类School
def __init__(self):
self.kongfu = '[黑马煎饼果子配方]'
def make_cake(self):
print(f'运用{self.kongfu}制作煎饼果子')
class Prentice(School, Master):#子类Prentice
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)
# 徒孙类
class Tusun(Prentice):
pass
xiaoqiu = Tusun()
xiaoqiu.make_cake()
xiaoqiu.make_school_cake()
xiaoqiu.make_master_cake()
代码如上,执行结果如下:
运用[独创煎饼果子配方]制作煎饼果子
运用[黑马煎饼果子配方]制作煎饼果子
运用[古法煎饼果子配方]制作煎饼果子
我的问题是:当对象调用make_cake()时,函数内部有一条print 的命令,可以执行出打印结果我能理解,可是在调用xiaoqiu.make_school_cake()和xiaoqiu.make_master_cake(),这两个函数是怎么去调用上一段函数里面的print命令的呢? xiaoqiu.make_school_cake() --> School.__init__(self) --> School.make_cake(self) --> print(f'运用{self.kongfu}制作煎饼果子')(self.kongfu 为 '[独创煎饼果子配方]')
xiaoqiu.make_master_cake() --> Master.__init__(self) --> Master.make_cake(self) --> print(f'运用{self.kongfu}制作煎饼果子')(self.kongfu 为 '[古法煎饼果子配方]')
如图所示 非常感谢,类和对象还是比较抽象的,我还要多体会,感谢两位前辈的指点
页:
[1]