首页 > 解决方案 > 有类似 OldStyleClass.mro() 的东西吗?

问题描述

我正在尝试了解旧式课程中的 MRO。为 NewStyleClass.mro()(或 NewStyleClass.__mro__)提供一个等价物会很方便。

有类似 OldStyleClass.mro() 的东西吗?也许是一种快速简便的模拟方法?

标签: pythonpython-2.7method-resolution-order

解决方案


您可以将inspect模块的资源与旧样式类一起使用:

class A:  # "old" style class
    pass

class B(A):
    pass

hasattr(B, '__mro__')
# -> False

import inspect
print inspect.getmro(B)
# -> (<class __main__.B at 0x7f1b5ee1b530>, <class __main__.A at 0x7f1b5ee1b4c8>)

推荐阅读