【发布时间】:2021-10-15 04:25:43
【问题描述】:
假设我有一个返回 void 的 C 函数
void mysub_wrapper(int *a, int *b)
{
*b = *a + 1;
}
我可以用 Cython 制作一个通过引用传递 a 和 b 的包装器吗:
cdef extern void mysub_wrapper(int *a, int *b)
def mysub(int a, int b):
mysub_wrapper(&a, &b)
这样就可以在python中调用了
a = 1
b = 0
mysub(a, b)
换句话说,我可以“就地”进行计算吗?
【问题讨论】:
-
Python 没有通过引用传递变量的概念。就地操作只能在可变容器上进行,例如列表和字典。
标签: python cython python-c-api cythonize