python - isinstance(type, object) = True,为什么?

标签 python object types python-datamodel

<分区>

我理解对象是类型的实例,类型继承自对象。所以以下关系是有道理的:

isinstance(object, type)            # returns True, ok
issubclass(type, object)            # returns True, ok

我还知道 isinstance(a,b) 检查 a 是否是 b 或其基类的实例。因此,以下内容也很有意义:

isinstance(type, type)              # returns True because it is translated to ....
isinstance(type, object)            # which is True

我无法理解的是为什么以下语句返回 True。

isinstance(type, object)            # returns True, but why?
isinstance(object, object)          # returns True, but why?

如果你知道请告诉我。谢谢。

最佳答案

object 是类层次结构的根,因此它是所有 类型的最终父类,包括type对象。这使得 object 成为它自己的父类,这就是为什么不能单独在 Python 中定义 object 的原因之一;它必须被 Python 实现凭空拖着踢和尖叫。

type 是一个类,所有(内置)类都是元类 type 的实例。 (是的,type 是它自己的元类。)由于 objecttype 的基类,因此 typeobject 的实例。

关于python - isinstance(type, object) = True,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50500298/

相关文章:

python - 从 etree 中删除一个节点但留下子节点

Typescript 通过 in 运算符进行类型保护

javascript - 在 Angular 模板中循环遍历 Javascript 对象和子对象

haskell - 为什么这个平均函数在 haskell 中不起作用?

c++ - 二维数组,一个已知,另一个未知

python mechanize 填写表格

python - 在 Python 中有条件地向字典添加属性

python - 如何获取 anchor 标签内的元素?

java - 如何获得 vector 输出?

java - 编程中的对象树和对象图有什么区别(主要是OOPS)?