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'>]
廣告