Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;当函数采用非平凡参数时,是否通过SWIG使用python回调?_C++_Python_Callback_Swig_Pyobject - Fatal编程技术网

C++ C++;当函数采用非平凡参数时,是否通过SWIG使用python回调?

C++ C++;当函数采用非平凡参数时,是否通过SWIG使用python回调?,c++,python,callback,swig,pyobject,C++,Python,Callback,Swig,Pyobject,我刚刚阅读了“SWIG和Python”教程的以下部分: 我理解他们在示例中所做的工作,基本上你编写了一个调用python的C函数。但是,所提供的示例只使用参数列表中的一个double,这使得为python构建参数列表非常简单 我有一个C++回调,它有以下签名: Vector (*CALLBACK)(Simulation*, Vector, Vector, double, void*) 其中Vector和Simulation是我自己的类,void*表示持有PyObject的clientData

我刚刚阅读了“SWIG和Python”教程的以下部分:

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

我有一个C++回调,它有以下签名:

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

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

非常感谢任何帮助!
-蔡斯

我不认为你的问题实际上是关于游泳;这纯粹是关于Python的。在这个级别上,您的问题只是从C调用Python,因此您需要学习Python文档。(同时)