为什么派生的简单ctypes在ctype结构中的行为不同

时间:2015-02-19 01:18:53

标签: python-2.7 ctypes

以例如:

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

我原以为struct1field1要求访问'value'数据,以获取ctype的实际值,类似于struct2。我错过了什么?出于向后兼容性原因,我希望struct2struct1的行为类似。

注意:我使用的是Python 2.7.3

0 个答案:

没有答案