3

値の名前とともに、構造体からすべての値を出力することを目的とした Python スクリプトに取り組んでいます。構造体の値はすべて ctypes ですが、印刷に問題があります。現状では、次のコードを実行すると

import ctypes

class test(ctypes.Structure):
    pass
test._fields_ = [
    ('a', ctypes.c_float),
    ('b', ctypes.c_float),
    ('c', ctypes.c_float)]

d = test(1, 2, 3)

for field in d._fields_:
    print field[0], field[1].value

私は得る

a <attribute 'value' of '_ctypes._SimpleCData' objects>
b <attribute 'value' of '_ctypes._SimpleCData' objects>
c <attribute 'value' of '_ctypes._SimpleCData' objects>

何かご意見は?.value は ctypes オブジェクトから値を取得するはずだと思っていましたが、取得したくないようです...

ありがとう!

4

1 に答える 1

5

_fields_フィールド名とデータ型があります。名前が必要で、値には組み込みを使用しますgetattr

>>> for name, dtype in d._fields_:
...     print name, getattr(d, name)
... 
a 1.0
b 2.0
c 3.0
于 2013-11-14T21:06:43.063 に答える