gpt4 book ai didi

Python 的新型类的基础—— `object` 和 `type`

转载 作者:太空狗 更新时间:2023-10-30 00:41:35 25 4
gpt4 key购买 nike

根据文档,object 是所有新型类的基类。

据我所知,所谓的新式类就是那些可以通过继承object获得一些新特性的类,对吧?

我认为 object 继承 type 或使用 type 作为它的 __metaclass__,但是 object.__bases__ 没有给我任何信息,那么这个 object 来自哪里,它和 type 有什么关系?

最佳答案

确实,object 的类型(即元类) ,一个类,是type :

type(object) == type      # True

object是基类,它没有自己的父类,如您所料:

object.__bases__ == ()    # True

object没有 __metaclass__属性,因为它不需要一个:它使用默认的元类 type .

现在有点困惑因为type实际上是 object 的子类,这令人难以置信(当您需要 type构造 object 时,type 如何从 object 派生?)但这通过在 C 中进行一些硬编码来解决Python 解释器中的级别。

所有这些仅适用于新式类,即那些派生自 object 的类.在 Python 3 中,所有类都是新样式的,因此这在 Python 3 中全局适用。

关于Python 的新型类的基础—— `object` 和 `type`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10493655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com