如果可以,请使用ctypes。更简单。但是,由于您要求输入SWIG,因此需要的是一个描述如何处理int
*的类型图。SWIG不知道可以指向多少个整数。以下摘自SWIG文档中有关多参数typemap的示例:
%typemap(in) (const int memoryCells, int *cellFailure) { int i; if (!PyList_Check($input)) { PyErr_SetString(PyExc_ValueError, "Expecting a list"); return NULL; } = PyList_Size($input); = (int *) malloc(()*sizeof(int)); for (i = 0; i < ; i++) { PyObject *s = PyList_GetItem($input,i); if (!PyInt_Check(s)) { free(); PyErr_SetString(PyExc_ValueError, "List items must be integers"); return NULL; } [i] = PyInt_AsLong(s); }}%typemap(freearg) (const int memoryCells, int *cellFailure) { if () free();}
请注意,使用此定义时,从Python调用时,将省略
memoryCells参数并仅传递诸如
[1,2,3,4]for
的数组
cellFailure。类型图将生成
memoryCells参数。
附言:如果您愿意,我可以发布一个完整的示例(适用于Windows)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)