1) Everything is object in Python, even types (what the hell, how can this happen ? See below bullet points)
2) "class" and "type" are the same thing, they are "type objects". "Type objects" can be subclassed. The other objects in Python are "concrete objects" which are instantiated of "type objects" (class or type) and they can't be subclassed.
3) "type" is a concrete instance of itself (what the hell).
4) "type" is metaclass which is used to create new classes/types
5) "object" is a "class" and it is a concrete instance of "type". Note, "object" doesn't inherit from "type", instead it is instantiated of "type" by the CPython runtime. CPython CORE need do special
initialization for "type" and "object", because they are interdependent (Chicken and Egg problem). This is why "isinstance(object, type) == True".
The following pseudo code should help understand how CPython CORE init these two.
# object's class is type
object.__class__ = type
# PyType_Ready(type) sets:
type.__bases__ = (object,)
type.__class__ = type(object)
本文深入探讨了Python语言中一切皆为对象的概念,解释了'类'与'type'的本质,即它们都是类型对象,可以被继承。进一步揭示了'type'作为自身实例的特殊性质及其作为元类创建新类的作用。同时,文中解析了'object'类如何通过CPython运行时环境初始化,并阐明'object'与'type'之间的复杂关系。
1027

被折叠的 条评论
为什么被折叠?



