Python实现中type类与object类哪个被优先编写?
Python中object与type的实现顺序解析
在Python的对象模型里,存在一个特殊的循环关联:所有类都是object的子类,同时又都是type的实例——这就导致object是type的实例,type又是object的子类。这种循环并非自然产生,完全是CPython底层手动构建的结果,毕竟用Python代码根本无法写出这种逻辑。
从CPython的实现代码来看,object的底层结构体定义会先于type出现,但两者的完整关联是在初始化阶段手动设置的:
- 首先创建
object的核心结构,它最初没有元类 - 接着创建
type的核心结构,将它的父类指向object - 最后手动把
object的元类设置为type,补全这个循环关系
简单来说,这两个类都是C层面写死的内置类型,不存在纯Python代码里“先编写哪个类”的说法,循环关联是靠底层手动绑定实现的。
内容的提问来源于stack exchange,提问作者Илья Целковой
相关产品推荐
相关产品推荐

