python 3.x, `type` 本身派生自 `object` ,而 `object` 派生自 `type`

标签 python python-3.x class oop

我目前正在学习 python OOP 模型并被告知

type itself derives from object, and object derives from type

我知道object是python 3.x中每个类的默认父类(super class),type类用于创建类(即类对象)。 objecttype 一起(以某种方式)构成了 python OOP 的基础,但我仍然对上面的陈述感到困惑。

有人可以详细解释一下objecttype之间的关系,以及它们在Python OOP中扮演的角色吗?谢谢

最佳答案

我们需要区分子类化和实例化。确切的规则可能因语言而异,但在 Python 3.x 中--

所有类都是object子类(当然,除了object本身)。 object 是类层次结构的根。

type 类是 object子类

所有对象都是类的实例

类本身就是对象。 (并非所有语言都是如此。)

类对象作为对象,是类的实例——类对象是类type(默认元类)的实例。

是的,type 是一个类和一个对象,并且它是 type实例type 具有类 type

是的,object 是一个类和一个对象,并且它是一个 type实例object 具有类 type

您可以通过使用 .__class__type() 来查看对象的类。 您可以通过使用 .__mro__ (方法解析顺序)来查看类的父类(super class)。

>>> type(object)
<class 'type'>
>>> type(type)
<class 'type'>
>>> object.__mro__
(<class 'object'>,)
>>> type.__mro__
(<class 'type'>, <class 'object'>)

关于python 3.x, `type` 本身派生自 `object` ,而 `object` 派生自 `type`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52771713/

相关文章:

Emacs 中的 Python 缩进

python - 异步使用 Flask-Mail 导致 "RuntimeError: working outside of application context"

python - 重命名文件不适用于 >1 GB 的文件

python - 从高速公路 WebSocketClientProtocol 回调到另一个对象

jquery - 如何使用 jQuery 列出页面中的所有类?

python - 如何更改 Pandas 数据帧图上的 Y 轴

python - colocate_with 在 tensorflow 中有什么用?

python - 我怎样才能确保对函数的递归调用是我认为的那样?

java - 我的 bin 文件夹中出现奇怪的类文件

list - Vaadin:在表中显示列表