前のトピックへ

弱参照オブジェクト (weak reference object)

次のトピックへ

セルオブジェクト (cell object)

このページ

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 *))
Return value: New reference.

void* cobj から PyCObject を生成します。関数 destrNULL でない場合、オブジェクトを再利用する際に呼び出します。

PyObject* PyCObject_FromVoidPtrAndDesc(void* cobj, void* desc, void (*destr)(void *, void *))
Return value: New reference.

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 にデストラクタが関連づけられていてはなりません。成功すると真値を返し、失敗すると偽値を返します。