##
7.5.9 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` を生成します。 関数 destr が `NULL`でない場合、オブジェクトを再利用する際に 呼び出します。

PyObject* `PyCObject_FromVoidPtrAndDesc`( | void* cobj, void* desc, void (*destr)(void *, void *))

  戻り値: 新たな参照.
  `void *`cobj から `PyCObject` を生成します。 関数 destr が `NULL`でない場合、オブジェクトを再利用する際に 呼び出します。 引数 desc を使って、デストラクタ関数に追加のコールバックデータ を渡せます。

void* `PyCObject_AsVoidPtr`( | PyObject* self)

  `PyCObject` オブジェクト self を生成するのに用いた オブジェクト `void *` を返します。

void* `PyCObject_GetDesc`( | PyObject* self)

  `PyCObject` オブジェクト self を生成するのに用いた コールバックデータ `void *` を返します。