Python中方法搜索順序——MRO

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中查找需要的方法,如果都沒有查到,就會報錯。

歡迎交流,我們一起進步!

發佈了26 篇原創文章 · 獲贊 7 · 訪問量 1799
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章