栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SWIG C至Python Int数组

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SWIG C至Python Int数组

如果可以,请使用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;  }  $1 = PyList_Size($input);  $2 = (int *) malloc(($1)*sizeof(int));  for (i = 0; i < $1; i++) {    PyObject *s = PyList_GetItem($input,i);    if (!PyInt_Check(s)) {        free($2);        PyErr_SetString(PyExc_ValueError, "List items must be integers");        return NULL;    }    $2[i] = PyInt_AsLong(s);  }}%typemap(freearg) (const int memoryCells, int *cellFailure) {   if ($2) free($2);}

请注意,使用此定义时,从Python调用时,将省略

memoryCells
参数并仅传递诸如
[1,2,3,4]
for
的数组
cellFailure
。类型图将生成
memoryCells
参数。

附言:如果您愿意,我可以发布一个完整的示例(适用于Windows)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/373362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号