Maison >développement back-end >C++ >Comment extraire les valeurs de retour des méthodes Python appelées via C/C ?

Comment extraire les valeurs de retour des méthodes Python appelées via C/C ?

DDD
DDDoriginal
2024-12-19 22:37:11504parcourir

How to Extract Return Values from Python Methods Called via C/C  ?

Extraction des valeurs de retour des méthodes Python appelées depuis C/C

Lors de l'appel d'une fonction Python personnalisée depuis C, on peut souhaiter récupérer le valeur de retour pour un traitement ultérieur en C. Ceci peut être réalisé en tirant parti des méthodes fournies par l'API CPython.

Commencez par importer le module Python using PyImport_Import() :

PyObject* myModuleString = PyString_FromString((char*)"mytest");
PyObject* myModule = PyImport_Import(myModuleString);

Ensuite, obtenez une référence à la fonction en utilisant PyObject_GetAttrString() :

PyObject* myFunction = PyObject_GetAttrString(myModule,(char*)"myabs");

Créez des arguments pour la fonction et appelez-la en utilisant PyObject_CallObject() :

PyObject* args = PyTuple_Pack(1,PyFloat_FromDouble(2.0));
PyObject* myResult = PyObject_CallObject(myFunction, args);

Enfin, récupérez le double C résultat :

double result = PyFloat_AsDouble(myResult);

Notez que la gestion des erreurs est cruciale et doit être mise en œuvre pour tenir compte des erreurs potentielles lors de ces opérations.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn