《Python源码剖析》阅读笔记:第一章-Python对象

本文解析了Python中对象的基础结构,介绍了所有Python对象共同继承的基础结构PyObject,详细解释了PyObject中的引用计数和类型对象指针的作用,并阐述了Python类型对象PyTypeObject如何通过一系列函数指针实现不同类型对象的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章-Python对象

 所有Python对象都直接或间接继承自PyObject,PyObject的定义很简单:
struct _object {

Py_ssize_t ob_refcnt; // 引用计数
struct PyTypeObject *ob_type; // 类型对象指针
} PyObject;
引用计数决定对象的生存。当ob_refcnt为0时销毁对象

Python类型对象(PyTypeObject)里的成员就是充当C++中的虚函数表。

PyTypeObject也是一种对象,同样继承自PyObject,其中除了记录对象名和对象大小等数据之外就是一系列的函数指针。包括怎么回收对象内存的析构函数,怎么打印对象,属性相关函数,以及数值型对象(Number)函数系、序列对象(Sequence)函数系、映射对象(Mapping)函数系等等一系列函数。不同类型的对象根据自身需要设置函数指针的值。比如整数对象PyIntObject只有Number函数,而没有Sequence和Mapping函数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值