14.14.2.6 データ型

class _CData
この非公開クラスはすべてのctypesデータ型の共通のベースクラスです。 他のものに取り込まれることで、すべてのctypes型インスタンスがはC互換データを 保持するメモリブロックを内部に持ちます。 メモリブロックのアドレスをaddressof()ヘルパー関数が 返さします。別のインスタンス変数は_objectsとして 公開されます。これはメモリブロックがポインタを含む場合に 存続し続ける必要のある他のPythonオブジェクトを含んでいます。

ctypesデータ型の共通メソッド、すべてのクラスメソッドが存在します(正確には、 メタクラスのメソッドです):

from_address( address)
このメソッドはaddressによって指定されたメモリを使用している ctypes型のインスタンスを返します。addressは整数でなければならない。

from_param( obj)
このメソッドはobjをctypes型に適合させます。その型が外部関数の argtypesタプルに存在する場合に、実際の外部関数呼び出しに 使われるオブジェクトを与えて呼び出します。 関数呼び出しパラメータとして使えるオブジェクトを返さなければなりません。

すべてのctypesデータ型にはこのクラスメソッドのデフォルト実装が存在し、 通常はobjがその型のインスタンスならそのままを返します。 いくつかの型は他のオブジェクトも受け取ります。

in_dll( library, name)
このメソッドは共有ライブラリがエクスポートするctypes型のインスタンスを 返します。nameはデータをエクスポートしているシンボル名であり、 libraryはロードされた共有ライブラリです。

ctypesデータ型に共通のインスタンス変数:

_b_base_
時にはctypesデータインスタンスは自信が含まれるメモリブロックを持たないことがあります。 その代わり、ベースオブジェクトのメモリブロックの一部を共有します。 _b_base_読み出し専用メンバーがメモリブロックを保有している ルートctypesオブジェクトです。

_b_needsfree_
ctypesデータインスタンスが確保したメモリブロック自体を保有している場合、 この読み出し専用変数は真であり、それ以外では偽です。

_objects
このメンバーはNoneまたはPythonオブジェクトが含まれる辞書であり、 Pythonオブジェクトはメモリブロックの内容を有効に保つために、 生き続けている必要があります。このオブジェクトはデバッギングのために エクスポートされているだけです。この辞書の内容を決して変更してはいけません。

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