为什么type(object)返回<class'type'>而不是<class'object'>?

时间:2019-10-11 00:53:21

标签: python python-3.x

我在REPL中玩耍,发现关于内置object基类的行为使我感到困惑:

>>> object
<class 'object'>
>>> type(object)
<class 'type'>

在这种情况下,为什么object的类型不是<class 'object'>?这是怎么回事?

1 个答案:

答案 0 :(得分:6)

类始终是type实例的直接,直接(隐含在所有没有声明的元类的所有类中)或间接(通过元类,它们始终是type的子类)。 object本身是一个类,您没有创建它的实例,因此它不能报告自己是object的实例(无论如何都不直接; isinstance(object, object)确实返回{ {1}},因为如果您沿着继承链走得足够远的话,包括True本身在内的所有事物都是type的实例。

如果您创建了object的实例,例如object,它将报告您的期望。

相关问题