How does Python's super() work with multiple inheritance?如何使用時,多繼承
我一直在尋找上述問題/答案,自己做了真糊塗
53 class First(object):
54 def __init__(self):
55 print "first"
56
57 class Second(First):
58 def __init__(self):
59 super(Second, self).__init__()
60 print "second"
61
62 class Third(First):
63 def __init__(self):
64 print "third"
65
66 class Fourth(Second, Third):
67 def __init__(self):
68 super(Fourth, self).__init__()
69 print "thats it"
四()
使用超初始化所有的家長 第三個
秒
那就是它
53 class First(object):
54 def __init__(self):
55 print "first"
56
57 class Second(First):
58 def __init__(self):
59 #super(Second, self).__init__() <---- commented out
60 print "second"
61
62 class Third(First):
63 def __init__(self):
64 print "third"
65
66 class Fourth(Second, Third):
67 def __init__(self):
68 super(Fourth, self).__init__()
69 print "thats it"
四()
第二
完蛋了
有人能向我解釋發生了什麼幕後的問候爲什麼頂部打印"third"
底部的不是?
我覺得在我看不到的場景後面發生了某種順序/順序。
- 四。 MRO
中註釋掉超在第二
(,,,,)
超二
(,,,,)
可能是Python的super()如何與多繼承協同工作的副本?](http://stackoverflow.com/q/3277367/832621)? –
@SaulloCastro但這就是我鏈接到的問題...... – ealeon
@ealeon看看'Fourth .__ mro__',這就是'super()'的順序。 –