使用Swig将Python数组传递给C ++向量

时间:2008-12-15 16:45:44

标签: c++ python swig

我有一个Python对象数组

[obj1, obj2, obj3]

我希望将它们传递给C ++函数来执行一些计算。我正在使用SWIG编写我的界面。已传递对象的类类型已在C ++中定义。

最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

这取决于你的函数是否已经编写且无法更改,在这种情况下你可能需要检查Swig文档以查看是否已经有一个从PyList到std :: vector的类型映射(我认为有)。如果没有,将PyObject *作为函数的参数并使用Python C API来操作列表应该可以正常工作。到目前为止,我没有遇到任何问题。对于自我文档,我建议将PyObject *类型化为某种预期类型,如“PythonList”,以便参数具有一定的含义。

这也可能有用:

How to expose std::vector<int> as a Python list using SWIG?