Super

使用场景有哪些?

  1. 重用父类方法逻辑

面试问题

既然我们重写了B的构造函数,那么用什么还要调用super?

  1. 重用父类方法逻辑

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()

results matching ""

    No results matching ""