长见识了。
为什么不直接这样
class A():
def __init__(self):
print("进入A…")
print("离开A…")
class B(A):
def __init__(self):
print("进入B…")
super().__init__()
print("离开B…")
class C(B):
def __init__(self):
print("进入C…")
super().__init__()
print("离开C…")
class D(C):
def __init__(self):
print("进入D…")
super().__init__()
print("离开D…")
6
还是乖乖用super吧
牛逼啊老哥
两次就两次憋!
刚试了一下,如果使class B 保持A.__init__(self), 而 class C 和 class D 中还是super().__init__()则会C中__init__的不会执行。如果class B 改为super().__init__(), 不管class C 中的__init__ 怎样,class A的__init__都会执行,且执行一次。
所以,个人猜测super().__init__() 是按照继承的顺序来的,直接从第一个也就是class B 中找,B中没有super().__init__(), 就跳过C了,C也就没有被继承。故猜测这种菱形继承模式,保证前N-1个(假设继承N个类)的__init__用super().__init__() 的形式 就可以了。
Super大法好
Get it!
热爱鱼C^_^
鱼C有你更精彩^_^
还还是不明白怎么办
似懂非懂
学习了
牛批牛批~~
看不懂,直接super()
膜拜
英文的重要性{:5_100:}
这算法是真的6...
其实只需要super来越过雷区哈哈哈{:5_95:}
所以super就是从左到右依次调用方法并且不会重复调用????
{:10_269:}{:10_269:}{:10_269:}{:10_269:}{:10_269:}