[問題] 多重繼承以及super()
各位python版的前輩大家好
最近小弟在自學python
到了多重繼承的這邊有點小疑問
程式碼如下:
class Base(object):
def __init__(self):
print ("enter Base")
print ("leave Base")
class A(Base):
def __init__(self):
print ("enter A")
super(A, self).__init__()
print ("leave A")
class B(Base):
def __init__(self):
print ("enter B")
super(B, self).__init__()
print ("leave B")
class C(A, B):
def __init__(self):
print ("enter C")
super(C, self).__init__()
print ("leave C")
c = C()
輸出的是:
enter C
enter A
enter B
enter Base
leave Base
leave B
leave A
leave C
我知道多重繼承中
super()調用的順序是根據MRO列表的順序
所以到leave Base都可以理解
疑問的點在於leave B->leave A->leave C的順序
想請問這邊程式是怎麼運行才會是如輸出的順序
感謝各位的解答
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.167.108
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1533830384.A.72D.html
推
08/10 11:40,
7年前
, 1F
08/10 11:40, 1F
→
08/10 11:40,
7年前
, 2F
08/10 11:40, 2F
→
08/10 11:40,
7年前
, 3F
08/10 11:40, 3F
→
08/10 11:44,
7年前
, 4F
08/10 11:44, 4F
→
08/10 11:45,
7年前
, 5F
08/10 11:45, 5F
→
08/11 00:35,
7年前
, 6F
08/11 00:35, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章