我有一个C++库,它有一个Python包装器(用SWIG编写)。这个库允许执行用户定义的小代码(回调),比如对向量执行元素操作。一、 你可以做任意的二进制函数,而不仅仅是a+。现在,这是通过接受二进制函数的可调用Python对象并调用它来实现的。它可以工作,但是比不必在每次迭代中上下跳转到Python的代码慢80倍。
我如何编写/构建/导入Cython函数,可以传递到C++库中,以便直接由C++库调用?
编辑: 如果我坚持C,我会写一些
EWise(double (*callback)(double, double))
尤斯会callback(10, 20);
或诸如此类。我希望用{ Cd2}}写在Cython中,使用用户想要的任何名称,并且指针必须通过Python以某种方式传递给我的C++库。不知怎的我不清楚。
您可以通过执行纯^{} 函数来实现这一点:
注意:您可以使用“cython-a”来查看它们与run的内容无关。所以它会和你的c库一起工作。
cython的诀窍在于使用关键字public
然后命令
cythonize <your_file.pyx>
和<your_file.c>
将创建可以包含的头<your_file.h>
。 或者,您可以自己创建标题:更新:
然后使用Python中的一点覆盖,就可以使用ctypes's callback mechanism
Embedding Python in Another Application可能是有用的读物。
相关问题 更多 >
编程相关推荐