有没有办法迭代结构属性?
Is there a way to iterate over struct attributes?
抱歉,如果之前有人问过这个问题。看起来确实很简单。我想知道是否有一种方法可以迭代结构属性。
例如
ctypedef struct Foo:
int a, b
cdef Foo foo = [1, 2]
#want something like this
for i in range(2):
print(foo[i])
根据@ShadowRanger 的评论,我能想到的最接近的方法是这样的:
ctypedef struct Foo:
int a, b
cdef union Bar:
Foo *f
int *g
cdef Foo foo = [1, 2]
cdef Bar bar
bar.f = &foo
for i in range(2):
print(bar.g[i])
用相应的数组包装结构。但是,这仅在结构是所有相同类型的集合时才有效。
抱歉,如果之前有人问过这个问题。看起来确实很简单。我想知道是否有一种方法可以迭代结构属性。
例如
ctypedef struct Foo:
int a, b
cdef Foo foo = [1, 2]
#want something like this
for i in range(2):
print(foo[i])
根据@ShadowRanger 的评论,我能想到的最接近的方法是这样的:
ctypedef struct Foo:
int a, b
cdef union Bar:
Foo *f
int *g
cdef Foo foo = [1, 2]
cdef Bar bar
bar.f = &foo
for i in range(2):
print(bar.g[i])
用相应的数组包装结构。但是,这仅在结构是所有相同类型的集合时才有效。