子类调用父类重名方法和属性之代码实现

class Master(object):
def __init__(self):
self.kongfu = '[师父方法]'

def make_cake(self):
print(f'运用{self.kongfu}来实现')


class School(object):
def __init__(self):
self.kongfu = '[666]'

def make_cake(self):
print(f'运用{self.kongfu}来实现')


class Prentice(Master, School):
def __init__(self):
self.kongfu = '[独创方法]'

def make_cake(self):
# 加自己的初始化的原因:如果不加这个自己的初始化,kongfu属性值是上一次调用的init内的kongfu属性值
self.__init__()
print(f'运用{self.kongfu}来实现')

# 子类调用父类的同名方法和属性:把父类的同名属性和方法再次封装
def make_master_cake(self):
# 父类类名.函数()
# 再次调用初始化的原因:这里想要调用父类的同名方法和属性,属性在init初始化位置,所以需要再次调用init
Master.__init__(self)
Master.make_cake(self)

def make_school_cake(self):

School.__init__(self)
School.make_cake(self)


# 3.用徒弟类创建对象,调用实例属性和方法
daqiu = Prentice()

daqiu.make_cake()

daqiu.make_master_cake()
daqiu.make_school_cake()


posted @ 2021-11-05 18:44  冰溏  阅读(153)  评论(0编辑  收藏  举报