【发布时间】:2010-09-27 00:10:06
【问题描述】:
我在 Python 中有一个对象数组
[obj1, obj2, obj3]
我想将它们传递给 C++ 函数以执行一些计算。我正在使用 SWIG 编写我的界面。传递对象的类类型已经在 C++ 中定义。
最好的方法是什么?
【问题讨论】:
-
“最佳方式”给出什么限制?是否允许使用外部库,或者您想通过 Python 的特殊用途设施?
我在 Python 中有一个对象数组
[obj1, obj2, obj3]
我想将它们传递给 C++ 函数以执行一些计算。我正在使用 SWIG 编写我的界面。传递对象的类类型已经在 C++ 中定义。
最好的方法是什么?
【问题讨论】:
这取决于您的函数是否已经编写并且无法更改,在这种情况下,您可能需要检查 Swig 文档以查看是否已经存在从 PyList 到 std::vector 的类型映射(我认为有)。如果没有,将 PyObject* 作为函数的参数并使用 Python C API 来操作列表应该可以正常工作。到目前为止,我还没有遇到任何问题。对于自文档,我建议将 PyObject* 类型定义为某种预期类型,例如“PythonList”,以便参数具有某种意义。
这也可能有用:
【讨论】: