【发布时间】:2011-05-03 17:48:44
【问题描述】:
我正在用 SWIG for Python 包装一个 C 模块。有没有办法将所有成员都是相同类型(相同类型的 Swig 对象)的 Python 列表/元组转换为 C 数组?
【问题讨论】:
标签: python arrays list types swig
我正在用 SWIG for Python 包装一个 C 模块。有没有办法将所有成员都是相同类型(相同类型的 Swig 对象)的 Python 列表/元组转换为 C 数组?
【问题讨论】:
标签: python arrays list types swig
类型映射。您最有可能寻找的是“in”类型映射,它将 Python 类型映射到 C 类型。声明看起来像这样:
%typemap(in) { /* 将 Python 元组对象转换为 C 数组的 C 代码 */ }
在类型映射代码中,您可以使用变量 $input 来引用要转换的 PyObject*,并将转换后的 C 数组分配给 $1。
http://docs.python.org/c-api/ 包含有关 Python/C API 的信息,您需要解压缩元组以获取项目并将它们转换为 C。
http://www.swig.org/Doc1.3/Typemaps.html 拥有类型映射的 SWIG 文档。
文档起初可能难以理解,因此请查看 /share 中的一些示例类型映射。该目录中的 carrays.i 也可以作为一个很好的起点。
【讨论】: