super的用法

class A(object):
    def __init__(self):
        print( "enter A")
        print ("leave A")

class B(object):
    def __init__(self):
        print ("enter B")
        print ("leave B")

class C(A):
    def __init__(self):
        print ("enter C")
        super(C, self).__init__()
        print ("leave C")

class D(A):
    def __init__(self):
        print ("enter D")
        super(D, self).__init__()
        print ("leave D")
class E(B, C):
    def __init__(self):
        print ("enter E")
        B.__init__(self)
        C.__init__(self)
        print ("leave E")

class F(E, D):
    def __init__(self):
        print ("enter F")
        E.__init__(self)
        D.__init__(self)
        print ("leave F")

输出如下:

enter F
enter E
enter B
leave B
enter C
enter D
enter A
leave A
leave D
leave C
leave E
enter D
enter A
leave A
leave D
leave F

继承的基类的次序是根据MRO来决定的。  

  

posted on 2017-06-02 23:03  vonkimi  阅读(152)  评论(0编辑  收藏  举报

导航