How to know MRO in python2
In python3, we can use '__mro__'
to get the method-resolution-order like below:
>>> class a:
... pass
...
>>> a.__mro__
(<class '__main__.a'>, <class 'object'>)
>>>
Does python2 has an alternative method for this? I tried to find one but failed.
>>> class a:
... pass
...
>>> dir(a)
['__doc__', '__module__']
>>> class a(object):
... pass
...
>>> dir(a)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__modu
le__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
Answer
mro()
is available since Python 2.2 (https://www.python.org/download/releases/2.3/mro/)
However the class must be a new style class.
>>> class A: pass
>>> A.mro()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: class A has no attribute 'mro'
>>> class A(object): pass
>>> A.mro()
[<class '__main__.A'>, <type 'object'>]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2017-02-01 elasticsearch 2.4.0执行update的时候发现的一个问题
2017-02-01 ElasticSearch 2.1.1学习及总结