我想做以下事情:
cdef extern from "foo.h" namespace "foo":
int bar(int, int)
def bar(a, b):
return foo.bar(a, b)
但这不起作用。什么是
namespace "foo"
部分用于?以及如何实现将从“foo.h”中提取的函数加载到名为 foo 的对象中?更新 :
我可以使用以下文件结构和代码找到解决方案:
spam.pyx
spam_c.pxd
c\
spam.c
# spam.pyx
cimport spam_c as spam
def foo(a, b):
return spam.foo(a, b)
# spam_c.pxd
cdef extern from "spam.c":
double foo(double, double)
有没有更好的方法来解决这个问题?
最佳答案
我发现这是处理此问题的首选方法。
关于namespaces - Cython extern 函数从 foo.h 转换为类似模块的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7092022/