Python 多繼承類中類的變數的功能是什麼?


在 Python 中,一個類可以從多個基類派生。這稱為多重繼承。

在多重繼承中,所有基類中的特性都會被繼承到派生類中。多重繼承的語法類似於單重繼承。

class Super1:
    pass
class Super2:
    pass
class MultiDerived(Super1, Super2):
   pass

在多重繼承場景中,任何特定屬性首先會在當前類中進行搜尋。如果沒有找到,則搜尋會繼續進入父類,採用自上而下、自左至右的方式,而不會對同一個類進行兩次搜尋。

因此,在 MultiDerived 類的上述示例中,搜尋順序為 [MultiDerived,Super1,Super2,object]。此順序也稱為 MultiDerived 類的線性化,而用於查詢此順序的規則集稱為方法解析順序 (MRO)。

MRO 確保一個類始終出現在其父類之前,如果有多個父類,則其順序與基類的元組相同。

一個類的 MRO 可以視為 __mro__ 屬性或 mro() 方法。前者返回一個元組,而後者返回一個列表。

>>> MultiDerived.mro()
[<class '__main__.MultiDerived'>,
 <class '__main__.Super1'>,
 <class '__main__.Super2'>,
 <class 'object'>]

更新日期:2020-06-16

368 次瀏覽

開啟你的職業生涯

完成課程以獲得認證

開始學習
廣告