Python中針對類提供了一個內置函數__mro__可以查看方法搜索順序
mro順序: Method Resolution Order
多繼承在python解釋器中時怎樣調用它的各個父類方法呢?在python類中,有一個內置方法__mro__,它返回一個元祖,保存父類的調用順序,能夠保證每個父類都會被調用,而且只被調用一次
主要用於在多繼承時判斷方法和屬性的調用路徑
使用格式:
print(對象.mro)
輸出:(<calss ‘main.類A’>,<calss ‘main.類B’>,<calss ‘main.類C’>)
Python的解釋器會按照mro指定的方法搜素順序來在各個類中查找對應的方法。以上類A,類B,類C已經按照mro的順序排列好,所以Python解釋器首先會在類A中查找需要的方法,如果沒有找到會依次從左往右在繼續在類B和類C中查找需要的方法,如果都沒有查到,就會報錯。
歡迎交流,我們一起進步!