I wonder hot it comes in such order that enter C enter A leave A leave C
?
Who called C.__init__()
?Why is it right after B before A?
class A():
def __init__(self):
print('enter A')
print('leave A')
class B(A):
def __init__(self):
print('enter B')
super().__init__()
print('leave B')
class C(A):
def __init__(self):
print('enter C')
super().__init__()
print('leave C')
class D(B, C):
def __init__(self):
print('enter D')
super().__init__()
print('leave D')
d = D()
The result is as following:
enter D
enter B
enter C
enter A
leave A
leave C
leave B
leave D