有没有办法迭代结构属性?

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])

用相应的数组包装结构。但是,这仅在结构是所有相同类型的集合时才有效。