3

我刚刚阅读了“SWIG 和 Python”教程的以下部分: http ://www.swig.org/Doc1.1/HTML/Python.html#n11

我理解他们在示例中所做的事情,基本上你编写了一个调用 python 的 C 函数。但是,提供的示例在参数列表中只使用了一个 double,这使得为 python 构建参数列表变得相当简单。

我有一个具有以下签名的 C++ 回调:

Vector (*CALLBACK)(Simulation*, Vector, Vector, double, void*)

其中 Vector 和 Simulation 是我自己的类,而 void* 用于持有 PyObject 的 clientData(如示例中所用)

我知道 SWIG 包装了 Vector 和 Simulation 类,因为我可以在 python shell 中创建它们。唯一的问题是,我不知道如何将回调函数中的 Vector 参数转换为 python 参数列表的适当 PyObject。SWIG 在包装类本身时显然有一些方法可以做到这一点,但我不知道如何在函数中手动完成它。

非常感谢任何帮助!-追赶

4

1 回答 1

0

我认为您的问题实际上与 SWIG 无关。它纯粹是关于 Python 的。在这个级别,您的问题只是从 C 调用 Python,因此您需要学习Python 文档中的“解析参数和构建值”。(还有“扩展和嵌入 Python 解释器”。)

于 2011-07-08T00:49:55.810 回答