Arrayはシーケンスであり、決まった数の同じ型のインスタンスを持ちます。
推奨されている配列の作成方法はデータ型に正の整数を掛けることです:
TenPointsArrayType = POINT * 10
ややわざとらしいデータ型の例になりますが、他のものに混ざって 4個のPOINTがある構造体です:
>>> from ctypes import * >>> class POINT(Structure): ... _fields_ = ("x", c_int), ("y", c_int) ... >>> class MyStruct(Structure): ... _fields_ = [("a", c_int), ... ("b", c_float), ... ("point_array", POINT * 4)] >>> >>> print len(MyStruct().point_array) 4 >>>
インスタンスはクラスを呼び出す通常の方法で作成します:
arr = TenPointsArrayType() for pt in arr: print pt.x, pt.y
上記のコードは0 0
という行が並んだものを表示します。
配列の要素がゼロで初期化されているためです。
正しい型の初期化子を指定することもできます:
>>> from ctypes import * >>> TenIntegers = c_int * 10 >>> ii = TenIntegers(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) >>> print ii <c_long_Array_10 object at 0x...> >>> for i in ii: print i, ... 1 2 3 4 5 6 7 8 9 10 >>>
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。