4

I have an array of objects in Python

[obj1, obj2, obj3]

and I want to pass them to off to a C++ function to perform some computation. I'm using SWIG to write my interface. The class type of the passed object is already defined in C++.

What's the best way to do this?

4

1 回答 1

2

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

这也可能有用:

如何使用 SWIG 将 std::vector<int> 公开为 Python 列表?

于 2008-12-15T22:17:57.007 回答