Capsules

有关使用这些对象的更多信息,请参考为扩展模块提供 C API

2.7 版的新Function。

typedef void (*PyCapsule_Destructor)(PyObject *);

有关 PyCapsule_Destructor 回调的语义,请参见PyCapsule_New()

创建一个PyCapsule封装* pointer *。 * pointer 参数不能为 NULL *。

失败时,设置一个异常并返回* NULL *。

如果* destructor 参数不是 NULL *,则销毁它时将以胶囊作为参数来调用它。

如果此胶囊将作为模块的属性存储,则* name *应指定为modulename.attributename。这将使其他模块可以使用PyCapsule_Import()导入胶囊。

胶囊具有* NULL 析构函数是合法的。这使 NULL *返回代码有些含糊;使用PyCapsule_IsValid()PyErr_Occurred()消除歧义。

胶囊具有* NULL 上下文是合法的。这使 NULL *返回代码有些含糊;使用PyCapsule_IsValid()PyErr_Occurred()消除歧义。

胶囊具有* NULL 名称是合法的。这使 NULL *返回代码有些含糊;使用PyCapsule_IsValid()PyErr_Occurred()消除歧义。

成功返回胶囊的内部指针。失败时,设置一个异常并返回* NULL *。

换句话说,如果PyCapsule_IsValid()返回的是真值,则可以保证对任何访问器(以PyCapsule_Get()开头的任何函数)的调用都能成功。

如果对象有效并且返回的名称匹配,则返回非零值。否则返回0。此Function不会失败。

成功返回0。返回非零并在失败时设置异常。

成功返回0。返回非零并在失败时设置异常。

成功返回0。返回非零并在失败时设置异常。

成功返回0。返回非零并在失败时设置异常。

首页