以例如:
import ctypes
class struct1(ctypes.Structure):
_fields_ = [('field1', ctypes.c_uint32)]
当我创建这个结构并访问“field1”时,我得到:
var = struct1()
print var.field1 #=> 0L
但是,如果我得出ctypes.c_uint32
,我会得到不同的结果:
class uint32(ctypes.c_uint32):
pass
class struct2(ctypes.Structure):
_fields_ = [('field1', uint32)]
var2 = struct2()
print var2.field1 #=> uint32 object
print var2.field1.value #=> 0L
我原以为struct1
会field1
要求访问'value'数据,以获取ctype的实际值,类似于struct2
。我错过了什么?出于向后兼容性原因,我希望struct2
与struct1
的行为类似。
注意:我使用的是Python 2.7.3