Cオブジェクト (CObject) — Python 2.7ja1 documentation

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python/C API リファレンスマニュアル »
- 具象オブジェクト (concrete object) レイヤ »

# Cオブジェクト (CObject)

警告

CObject API は Python 2.7 から非推奨になりました。新しい カプセル (Capsules) APIへ移行してください。

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

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

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

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python/C API リファレンスマニュアル »
- 具象オブジェクト (concrete object) レイヤ »