#super()
从继承表中找到当前自己的位置,super()相当于调用继承表中上一个对象,优点:让所有继承来的类只初始化一次,继承表可以使用(类.__mro__查看)
(查看代码详解)
从继承表中找到当前自己的位置,super()相当于调用继承表中上一个对象,优点:让所有继承来的类只初始化一次,继承表可以使用(类.__mro__查看)
(查看代码详解)
# coding=utf-8
print("******多继承使用类名.__init__ 发生的状态******")
class Parent(object):
def __init__(self):
print('parent的init开始被调用')
class Son1(Parent):
def __init__(self):
print('Son1的init开始被调用')
super().__init__() # 按_mro顺序初始化
class Son2(Parent):
def __init__(self):
print('Son2的init开始被调用')
super().__init__()
class Grandson(Son1, Son2):
def __init__(self):
print('Grandson的init开始被调用')
super().__init__() # 单独调用父类的初始化方法
gs = Grandson()
print(Grandson.__mro__) #继承表 super()是当前继承表的上一个