14.14.1.13 配列

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
>>>

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