LXW19
发表于 2018-11-7 12:57:55
长见识了。
908105756
发表于 2018-11-15 16:01:41
为什么不直接这样
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…")
焰虎
发表于 2018-11-20 10:11:34
6
spector
发表于 2018-11-20 12:49:48
还是乖乖用super吧
甲鱼爸爸的爸爸
发表于 2018-11-25 13:55:05
牛逼啊老哥
sprewell
发表于 2018-11-30 18:45:54
两次就两次憋!
syf040916
发表于 2018-12-1 08:47:41
刚试了一下,如果使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__() 的形式 就可以了。
李小控
发表于 2019-1-13 21:38:13
Super大法好
匕首码云
发表于 2019-1-18 11:46:25
Get it!
黑色四叶草
发表于 2019-2-2 14:36:31
热爱鱼C^_^
黑色四叶草
发表于 2019-2-4 11:26:14
鱼C有你更精彩^_^
小甲鱼学习
发表于 2019-2-13 11:00:03
还还是不明白怎么办
sswalker
发表于 2019-3-4 22:26:55
似懂非懂
dereksy
发表于 2019-3-5 17:21:06
学习了
sailor008
发表于 2019-3-8 11:16:41
牛批牛批~~
Anna0
发表于 2019-3-10 17:34:45
看不懂,直接super()
Roleplay
发表于 2019-3-12 19:51:34
膜拜
oNlYLeeee
发表于 2019-4-2 14:20:58
英文的重要性{:5_100:}
这算法是真的6...
其实只需要super来越过雷区哈哈哈{:5_95:}
随风~
发表于 2019-4-2 16:39:05
所以super就是从左到右依次调用方法并且不会重复调用????
泡芙小王子
发表于 2019-4-2 17:50:39
{:10_269:}{:10_269:}{:10_269:}{:10_269:}{:10_269:}
页:
1
2
3
4
5
[6]
7
8
9
10
11