关于python:Method resolution order (__mro__) 在python3.x中不可用?

Method resolution order (__mro__) not available in Python3.x?

我想知道,在python 3.x中,方法解析顺序属性mro似乎不再可用了。例如,使用python 3.5.2并创建一个随机类对象实例A,内置或自实现

1
A = dict()

然后打电话

1
A.__mro__

不起作用,升高

1
AttributeError: 'A' object has no attribute '__mro__'

我试图使用a.mro(),但这给出了相同类型的异常。我现在如何接收方法解析命令?


这不适用于实例。错误提示所讨论的变量A不绑定到类型,而是绑定到类A的实例。很多类型(类)都有__mro__

1
2
3
4
5
6
7
>>> int.__mro__
(<class 'int'>, <class 'object'>)
>>> class Foo():
...     pass
...
>>> Foo.__mro__
(<class '__main__.Foo'>, <class 'object'>)

由于A是一个类型的实例,而不是类型本身,所以可以使用type(A).__mro__

另外,您的代码在python 2中也不会起作用;不,实例中也没有__mro__