【发布时间】:2018-11-20 06:02:04
【问题描述】:
我知道这是重复 Writing Cython extension: how to access a C struct internal data from Python?
但是我还没有找到任何资源来处理这样的 C 结构,
ctypedef struct IoRegAccess:
int Addr[26]
int Data[26]
int AddrLen
int DataLen
使用__getitem__/__setitem__ 方法我们可以访问这个结构数组,但我有兴趣在特定类中使用@property 来完成
cdef class PyIoRegAccess:
cdef IoRegAccess RegContainer
#ctor of this class
def __cinit__(self):
memset(self.RegContainer.uiAddr, 0,sizeof(uint32_t)*26)
memset(self.RegContainer.uiData, 0,sizeof(uint32_t)*26)
@property
def uiAddr(self,key):
return self.RegContainer.uiAddr[key]
@uiAddr.setter
def uiAddr(self, key, value):
self.RegContainer.uiAddr[key] = value
现在我有两个错误,
特殊方法 __get__ 的参数数量错误(声明 2 个,预期 1 个)
特殊方法 __set__ 的参数数量错误(声明 3 个,预期 2 个)
请对此提出建议
【问题讨论】:
-
你的缩进看起来不对。
-
忽略缩进...它只是发布的代码。内部编辑器,配合完美缩进
-
我已经更正了发布代码中的缩进