这也许是以前问过的,但我需要进一步澄清。 我正在一个项目中,我需要将3D数组从C发送到嵌入式Python函数。
我提到了this,但无法使其适用于3D阵列。 另外,我尝试包含numpy / arrayobject.h,但它给了我贬值警告。 我的代码结构如下:
static PyObject *pName, *pModule,*pDict,*pFunc,
*pArgs, *pValue, *pPredReturn;
int main(){
time_t t;
srand((unsigned) time(&t));
int A[1][1280][64] = {{{0}}};
for (int j = 0; j<64; j++){
for(int i = 0; i<1280; i++) {
A[0][i][j] = (rand() % 2);
}
}
Py_Initialize();
PyObject *sys = PyImport_ImportModule("sys");
PyObject *path = PyObject_GetAttrString(sys, "path");
PyList_Append(path, PyUnicode_FromString("."));
// Build name object
pName = PyUnicode_FromString("interface");
// Load module object
pModule = PyImport_Import(pName);
// pDict is a borrowed reference
pDict = PyModule_GetDict(pModule);
// pFunction
pFunc = PyDict_GetItemString(pDict, "some_function");
// What should go here.. ? How should I proceed?
if (PyCallable_Check(pFunc))
{
pArgs = PyTuple_New(1);
pValue = ...
PyTuple_SetItem() ...
pFuncReturn = PyObject_CallObject(pFunc, pArgs);
}
Py_Finalize();
return 0;
}
如何修改代码以发送3D数组? 另外,我将从Python中获取3D数组。我应该如何声明Python函数返回值的数据类型?