Super
使用场景有哪些?
- 重用父类方法逻辑
面试问题
既然我们重写了B的构造函数,那么用什么还要调用super?
- 重用父类方法逻辑
super执行顺序是怎么样的?
这里的调用父类的顺序是遵循MRO的,也就是代码执行逻辑和看起来的预期结果会不符,例如下面代码
class A:
def __init__(self):
print('A')
class B(A):
def __init__(self):
print('B')
super(B, self).__init__()
class C(A):
def __init__(self):
print('C')
super(C, self).__init__()
class D(B,C):
def __init__(self):
print('D')
super(D, self).__init__()
if __name__ == '__main__':
d = D()