7.5.10 Cオブジェクト (CObject)

このオブジェクトの使用法に関する情報は、 Python インタプリタの拡張と埋め込み 1.12 節、 ``Providing a C API for an Extension Module,'' を参照してください。

PyCObject
この PyObject のサブタイプは不透明型値 (opaque value) を 表現します。C 拡張モジュールが Python コードから不透明型値を (void* ポインタで) 他の C コードに渡す必要があるときに 便利です。 正規の import 機構を使って動的にロードされるモジュール内で定義 されている C API にアクセスするために、あるモジュール内で定義 されている C 関数ポインタを別のモジュールでも利用できるように するためによく使われます。

int PyCObject_Check(PyObject *p)
引数が PyCObject の場合に真を返します。

PyObject* PyCObject_FromVoidPtr(void* cobj, void (*destr)(void *))
戻り値: 新たな参照.
void *cobj から PyCObject を生成します。 関数 destrNULL でない場合、オブジェクトを再利用する際に 呼び出します。

PyObject* PyCObject_FromVoidPtrAndDesc(void* cobj, void* desc, void (*destr)(void *, void *))
戻り値: 新たな参照.
void *cobj から PyCObject を生成します。 関数 destrNULL でない場合、オブジェクトを再利用する際に 呼び出します。 引数 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 にデストラクタが関連づけられていてはなりません。 成功すると真値を返し、失敗すると偽値を返します。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。