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
Libérer: 2024-12-19 22:37:11
original
582 Les gens l'ont consulté

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);
Copier après la connexion

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

PyObject* myFunction = PyObject_GetAttrString(myModule,(char*)"myabs");
Copier après la connexion

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);
Copier après la connexion

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

double result = PyFloat_AsDouble(myResult);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal