71、Python扩展与嵌入的综合指南

Python扩展与嵌入的综合指南

1. 利用Python的C API扩展Python

在Python开发中,有时需要借助C API来扩展Python的功能。不过,循环垃圾回收和支持弱引用这类高级主题暂不展开。

在定义类型时, tp_doc 字段是一个以空字符结尾的字符串,作为类型的文档字符串。其他字段会指向结构体,这些结构体的字段又指向函数。若不支持某类函数,可将对应字段设为 NULL 。以下是一些指向函数块的字段及其用途:
| 字段 | 用途 |
| ---- | ---- |
| tp_as_number | 通常由数字类型提供的特殊方法 |
| tp_as_sequence | 通常由序列类型提供的特殊方法 |
| tp_as_mapping | 通常由映射类型提供的特殊方法 |
| tp_as_buffer | 缓冲区协议的特殊方法 |

以字典为例,它虽不是序列,但支持 __contains__ 特殊方法。在C代码层面,该方法是 tp_as_sequence 指向的 PySequenceMethods 结构体中 sq_contains 字段所指向的函数。所以,字典类型的 PyTypeObject 结构体( PyDict_Type )的 tp_as

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值