Python type and object relationship

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)


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值