Python/C API:初始化、终结与线程管理
1. PyCObject相关函数
在Python/C API中,PyCObject相关函数常被用于处理C函数指针,使得一个模块中定义的C函数指针能被其他模块使用,这样就可以通过常规的导入机制来访问动态加载模块中定义的C API。以下是一些重要的PyCObject函数:
- int PyCObject_Check(PyObject *p)
:若参数 p
是一个 PyCObject
,则返回真。
- PyObject* PyCObject_FromVoidPtr(void* cobj, void (*destr)(void *))
:返回一个新的引用,从 void * cobj
创建一个 PyCObject
。当对象被回收时,若 destr
函数不为空,则会调用该函数。
- PyObject* PyCObject_FromVoidPtrAndDesc(void* cobj, void* desc, void (*destr)(void *, void *))
:同样返回一个新的引用,从 void *cobj
创建 PyCObject
。对象回收时会调用 destr
函数, desc
参数可用于传递析构函数的额外回调数据。
- void* PyCObject_AsVoi