Python之MRO及其C3算法


[<class '__main__.B'>, <class '__main__.A'>, <class 'object'>]
(<class '__main__.B'>, <class '__main__.A'>, <class 'object'>)
(<class '__main__.B'>, <class '__main__.A'>, <class 'object'>)

 

推薦+收藏:兩篇不錯的文章:

你真的理解Python中MRO算法嗎?

python MRO:C3算法

MRO:Method Resolution Order 方法解析順序,Python支持多繼承,該方法用於解決父類存在同名函數的時存在的二義性問題。

單調性:某一個類繼承的父類滿足從左到右的順序解析(從左到右遞歸地從左到右解析)

獲取解析順序的幾種方法:

import inspect
class A:
    pass
class B(A):
    pass

print(B.mro())
print(B.__mro__)
print(inspect.getmro(B))

輸出結果:

[<class '__main__.B'>, <class '__main__.A'>, <class 'object'>]
(<class '__main__.B'>, <class '__main__.A'>, <class 'object'>)
(<class '__main__.B'>, <class '__main__.A'>, <class 'object'>)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM