CObjects — Python 文档
来自菜鸟教程
Python/docs/2.7/c-api/cobject
对象
- 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 创建一个 PyCObject。 destr 函数会在对象被回收时被调用,除非它是 NULL。
- PyObject *PyCObject_FromVoidPtrAndDesc(void *cobj, void *desc, void (*destr)(void*, void*))
- 从
void *
cobj 创建一个 PyCObject。 destr 函数会在对象被回收时被调用。 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 指针设置为 cobj。 PyCObject 不能有关联的析构函数。 成功返回真,失败返回假。