基本上,它应该看起来像这样(在伪代码中):
C ++文件:
void do_stuff(){
printf("Callback", );
}
void main(){
call_python_function(&do_stuff);
}
Python文件:
def python_function(ptr):
ptr()
使用Python.h从C ++调用带有一些参数的Python相对容易,但是如何回调C ++呢? 另外,我还想传递一些数据,理想情况下,它最终应该看起来像这样:
C ++文件:
vector<double> do_stuff(double a, double b){
vector<double> v;
for(int i=0; i<1000; i++) v.push_back(a*sin(b*i));
}
void main(){
call_python_function(&do_stuff);
}
Python文件:
def python_function(ptr):
print ptr(1.2,3.4)
这有可能吗?我正在考虑使用像ZeroMQ这样的消息传递接口和一些线程,但也许有一个更清晰,更简单的解决方案看起来或多或少像我在这里展示的那样?