CObjects —Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/2.7/c-api/cobject /
2021年11月1日 (月) 02:58時点におけるNotes (トーク | 投稿記録)による版 (Page commit)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

CObjects

警告

CObject APIは、Python2.7で非推奨になりました。 新しい Capsules APIに切り替えてください。


type PyCObject
PyObject のこのサブタイプは不透明な値を表し、Pythonコードを介して他のCコードに不透明な値を(void*ポインターとして)渡す必要があるC拡張モジュールに役立ちます。 これは、あるモジュールで定義されたC関数ポインターを他のモジュールで使用できるようにするためによく使用されるため、通常のインポートメカニズムを使用して、動的にロードされたモジュールで定義されたCAPIにアクセスできます。
int PyCObject_Check(PyObject *p)
引数が PyCObject の場合はtrueを返します。
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 関数は、オブジェクトが再利用されるときに呼び出されます。 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 にはデストラクタが関連付けられていてはなりません。 成功した場合はtrueを返し、失敗した場合はfalseを返します。