Swig:将成员变量(指针到值)转换为python列表

问题描述 投票:0回答:1

我有一个带有两个成员变量的C ++结构。一个是指向动态分配的内存的指针,该内存包含对象数组。第二个是整数,包含数组中对象的数量。

我有一个接受struct实例并填写两个成员变量的函数。

我可以将其包装得很好,并且可以从Python使用它,但不能在分配的数组上进行迭代。它是指向Python的不透明指针,我需要能够访问数组的元素。我该怎么做?

假定结构看起来像这样:

typedef struct {
    int numElements;
    Result *results;
} ResultList;

并且函数看起来像这样:

void populateResults(ResultList *);
python swig
1个回答
0
投票

因此,看起来这是使用%extend关键字的示例。我在ResultsList结构的声明之后添加了以下内容:

%extend ResultsList {
    Result& __getitem__(int idx) { return $self->results[idx]; }
}

似乎有效。我现在可以遍历列表。我认为下一步是通过实现__next____iter__函数将其变成可迭代的对象。

© www.soinside.com 2019 - 2024. All rights reserved.