我想包装这个简单的函数:
double foo(int a, int* b)
{
double div = ((double) a) / ((double) *b);
*b = a + (*b);
return div;
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是这样的:
cdef pyfoo(int c, int d):
res = foo(c, &d);
return (res, d)
Run Code Online (Sandbox Code Playgroud)
我想返回一个值列表,但是使用cdef它不起作用它给了我erroe:AttributeError没有属性pyfoo如果不使用cdef我使用def或cpdef它可以工作.
使用cdef在cython中有一些方法吗?
cdefPython代码无法访问函数.这就是为什么它们很快:从Python调用函数总是很慢.
该解决方案正在使用cpdef,因此它既可以从Python访问,也可以从C调用时快速.或者,不要从Python代码调用它.