我想知道什麼是使用SWIG將C中的字符串數組包裝到Python列表的正確方法。SWIG - 將C字符串數組封裝到Python列表
陣列是一個結構內:
typedef struct {
char** my_array;
char* some_string;
}Foo;
SWIG自動換some_string到一個Python字符串。
我應該在SWIG接口文件中放入什麼東西,以便我可以在Python中使用my_array作爲常規Python字符串列表['string1','string2']?
我已經使用類型映射爲sugested:
%typemap(python,out) char** {
int len,i;
len = 0;
while ($1[len]) len++;
$result = PyList_New(len);
for (i = 0; i < len; i++) {
PyList_SetItem($result,i,PyString_FromString($1[i]));
}
}
但是,這仍然沒有奏效。在Python中,my_array變量顯示爲SwigPyObject:_20afba0100000000_p_p_char。
我不知道是否因爲char **是在一個struct中?也許我需要告訴SWIG?
任何想法?