【发布时间】:2018-09-10 19:24:26
【问题描述】:
为什么新样式类的mro中没有“type”?
在下面的代码中,“type”是类“A”的元类,这意味着“type”“type”应该是“A”的方法解析顺序的一部分。为什么?
对于新样式类,为什么我们继承“object”,为什么不继承“type”?
A.__class__是“类型”,但它不是 mro 的一部分。请告诉我“object”和“type”的区别,实际上“type”也继承了“object”的定义。我的意思是“对象”和元类之间的区别。
在旧式类中,“classobj”也是一个元类?
例子:
>>> class A(object):pass
...
>>>
>>> A.__mro__
(<class '__main__.A'>, <type 'object'>)
>>>
>>> A.__class__
<type 'type'>
【问题讨论】:
-
A.__class__.__mro__确实包括type(和任何元类);A.__mro__为您提供A的instances 的解析顺序。
标签: python python-2.7