领教了
应该懂了
求解答:使用super函数后,输出的结果
进入D...
进入B...
进入C...
为什么B后是C?
长见识了。
为什么不直接这样
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()
膜拜