是否有类似OldStyleClass.mro()的东西?

时间:2018-07-17 10:17:51

标签: python python-2.7 method-resolution-order

我试图理解老式类中的MRO。拥有与NewStyleClass.mro()(或NewStyleClass .__ mro__)等效的对象将很方便。

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

1 个答案:

答案 0 :(得分:1)

您可以将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>)