我正在尝试使用 numpy 和 ctypes 将一些用 C 编写的数字代码集成到 Python 库中。我已经进行了实际计算,但现在想将我算法的中间步骤的进度报告给我的 Python 代码中的回调函数。虽然我可以成功调用回调函数,但我无法检索x传递给回调的数组中的数据。在回调中,x是一个ndpointer我似乎无法取消引用的对象。
考虑这个最小的例子:
测试.h:
typedef void (*callback_t)(
double *x,
int n
);
void callback_test(double* x, int n, callback_t callback);
Run Code Online (Sandbox Code Playgroud)
测试.c:
#include "test.h"
void callback_test(double* x, int n, callback_t callback) {
for(int i = 1; i <= 5; i++) {
for(int j = 0; j < n; j++) {
x[j] = x[j] / i;
}
callback(x, n);
}
}
Run Code Online (Sandbox Code Playgroud)
测试.py:
#!/usr/bin/env python
import numpy as …Run Code Online (Sandbox Code Playgroud)