如果您從許多實現了相同方法的類繼承,那麼哪種行爲將提供Python?Python中的多繼承,成熟類中的相同方法
Class A():
def method():
pass
Class B():
def method():
pass
Class C(A,B):
pass
如果您從許多實現了相同方法的類繼承,那麼哪種行爲將提供Python?Python中的多繼承,成熟類中的相同方法
Class A():
def method():
pass
Class B():
def method():
pass
Class C(A,B):
pass
這個問題相當複雜......至少有三種不同的Python方法解析順序算法。
對於簡單的情況下並非你所期望的,對於細微的差別看到
見http://python-history.blogspot.it/2010/06/method-resolution-order.html
三?我只計算兩個;舊風格和新風格。 Python 3默認使用新風格,在Python 2中,您需要從'object'繼承來做到這一點。第三是什麼? –
來自Guido的博客文章:「Python至少知道三種不同的MRO算法:經典,Python 2.2新風格和Python 2.3新風格(又名C3)」。 – 6502
啊,我通常忽略2.2新風格,因爲那只是一個版本,並且被認爲是一個bug。從2.3開始,只有2個變種,你通常可以假設沒有人再使用2.2。 –
你有沒有簡單地試着這樣做? – Mailerdaimon
查找「方法解析順序」(mro)的概念。 – glglgl
這也取決於Python版本; Python 2或3?如果Python 2,'A()'是否從'object'繼承? –