1、 super([type[, object-or-type]])
super() 在使用时至少传递一个参数,且这个参数必须是一个类。
通过super()获取到的是一个代理对象,通过这个对象去查找父类或者兄弟类的方法。
2、super()不写参数的情况
class Base: def __init__(self): print('Base.__init__') class A(Base): def __init__(self): super().__init__() print('A.__init__') class B(Base): def __init__(self): super().__init__() print('B.__init__') class C(Base): def __init__(self): super().__init__() print('C.__init__') class D(A, B, C): def __init__(self): super().__init__() # 等同于 super(D, self).__init__() print('D.__init__') D() print(D.mro())
结果:
Base.__init__ C.__init__ B.__init__ A.__init__ D.__init__ [<cl