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

Tho*_*hor 2 python oop class python-3.x

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

type本身源自object,并且object源自type

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

object有人可以详细解释 和之间的关系type以及它们在 python OOP 中扮演的角色吗?谢谢

gil*_*lch 5

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

所有类都是(好吧,除了它自己)的子类。是类层次结构的根。objectobjectobject

该类type是的子类object

所有对象都是类的实例。

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

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

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

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

.__class__您可以通过使用或type()来查看对象的类。.__mro__您可以通过使用(方法解析顺序)来查看类的超类。

>>> type(object)
<class 'type'>
>>> type(type)
<class 'type'>
>>> object.__mro__
(<class 'object'>,)
>>> type.__mro__
(<class 'type'>, <class 'object'>)
Run Code Online (Sandbox Code Playgroud)