類變數如何在 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'>]
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP