[英]Use std::vector member variable as list in swig generated python interface
[英]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.