Extrahieren von Rückgabewerten aus Python-Methoden, die von C/C aufgerufen werden
Wenn Sie eine benutzerdefinierte Python-Funktion aus C aufrufen, möchten Sie möglicherweise die abrufen Rückgabewert für die weitere Verarbeitung in C. Dies kann durch die Nutzung der von der CPython-API bereitgestellten Methoden erreicht werden.
Beginnen Sie mit dem Import von Python Modul mit PyImport_Import():
PyObject* myModuleString = PyString_FromString((char*)"mytest"); PyObject* myModule = PyImport_Import(myModuleString);
Als nächstes erhalten Sie einen Verweis auf die Funktion mit PyObject_GetAttrString():
PyObject* myFunction = PyObject_GetAttrString(myModule,(char*)"myabs");
Erstellen Sie Argumente für die Funktion und rufen Sie sie mit PyObject_CallObject() auf:
PyObject* args = PyTuple_Pack(1,PyFloat_FromDouble(2.0)); PyObject* myResult = PyObject_CallObject(myFunction, args);
Zuletzt rufen Sie das C-Double ab Ergebnis:
double result = PyFloat_AsDouble(myResult);
Beachten Sie, dass die Fehlerbehandlung von entscheidender Bedeutung ist und implementiert werden sollte, um mögliche Fehler während dieser Vorgänge zu berücksichtigen.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich Rückgabewerte aus Python-Methoden, die über C/C aufgerufen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!