簡體   English   中英

Swig:將成員變量(指向值的指針)轉換為 python 列表

[英]Swig: convert member variable (pointer to value) to python list

我有一個帶有兩個成員變量的 C++ 結構。 一個是指向動態分配的 memory 的指針,其中包含一個對象數組。 第二個是 integer,其中包含數組中的對象數。

我有一個 function ,它采用結構的一個實例並填寫兩個成員變量。

我可以很好地包裝它並從 Python 使用它,但無法遍歷分配的數組。 它是指向 Python 的不透明指針,我需要能夠訪問數組的元素。 我該怎么做呢?

假設結構如下所示:

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

function 看起來像這樣:

void populateResults(ResultList *);

因此,看起來這是使用%extend關鍵字的示例。 我在ResultsList結構聲明后添加了以下內容:

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

它似乎正在工作。 我現在可以遍歷列表。 我認為下一步是通過實現__next____iter__函數將其變成可迭代的 object。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM