Это, возможно, спросили раньше, но мне нужно больше разъяснений.Я работаю над проектом, в котором мне нужно отправить трехмерный массив из C во встроенную функцию Python.
Я упомянул это , но не смог заставить его работать для 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?Также я буду возвращать 3D-массив из Python.Как мне объявить тип данных для возвращаемого значения из функции Python?