CObjects — Python 文档

来自菜鸟教程
Python/docs/2.7/c-api/cobject
跳转至:导航、​搜索

对象

警告

CObject API 从 Python 2.7 开始被弃用。 请切换到新的 Capsules API。


type PyCObject
PyObject 的这个子类型表示不透明值,对于需要通过 Python 代码将不透明值(作为 void* 指针)传递给其他 C 代码的 C 扩展模块非常有用。 它通常用于使在一个模块中定义的 C 函数指针可用于其他模块,因此常规导入机制可用于访问动态加载模块中定义的 C API。
int PyCObject_Check(PyObject *p)
如果其参数是 PyCObject,则返回 true。
PyObject *PyCObject_FromVoidPtr(void *cobj, void (*destr)(void*))
void * cobj 创建一个 PyCObjectdestr 函数会在对象被回收时被调用,除非它是 NULL
PyObject *PyCObject_FromVoidPtrAndDesc(void *cobj, void *desc, void (*destr)(void*, void*))
void * cobj 创建一个 PyCObjectdestr 函数会在对象被回收时被调用。 desc 参数可用于为析构函数传递额外的回调数据。
void *PyCObject_AsVoidPtr(PyObject *self)
返回创建 PyCObject self 的对象 void *
void *PyCObject_GetDesc(PyObject *self)
返回创建 PyCObject self 时使用的描述 void *
int PyCObject_SetVoidPtr(PyObject *self, void *cobj)
self 内部的 void 指针设置为 cobjPyCObject 不能有关联的析构函数。 成功返回真,失败返回假。