Ho uno scenario in cui ho alcune funzioni nelle classi C++ e voglio essere in grado di chiamarle usando uno script python. Diciamo che ho una funzioneChiamare una funzione C++ tramite uno script Python
void greet(_msg);
std::cout >> _msg >> std::endl;
Voglio essere in grado di chiamare esso attraverso una chiamata Python personalizzato e passare gli argomenti ad esso, ad esempio utilizzando
saySomething("Hello")
Come un file .py lo voglio chiamare la funzione di saluto e passare "Ciao" come argomento.
So che è un argomento che è stato ampiamente discusso, e ho fatto una parte della ricerca sull'incorporazione di python in C++, sono riuscito a leggere i valori da uno script python usando l'API standard di Python/C ed eseguire una funzione in Python da C++ e passare argomento ad esso, ma non riesco a capire come ottenere questo risultato specifico.
Ho dato un'occhiata ai ctype e alle varie librerie di wrappin come boost: python o swig, ma non riesco a capire fino a che punto potrebbero aiutarmi a realizzare il desiderio che voglio.
"eseguire una funzione in Python da C++" cosa intendi con questo? Se ti piace mascherare C/C++ come API Python puoi applicare le regole di base dei binding Python per C/C++, c'è anche la libreria boost :: python che può essere più facile da gestire quando si scrive l'API python a partire dal codice C++. – user1797612
Mi spiace che non sia chiaro - Quello che voglio è essere in grado di avere uno script python che chiama una funzione specifica di una classe C++ in grado di passare argomenti ad essa. Più o meno come una GUI, ma eseguita tramite script python anziché pulsanti. – leoncvlt
quindi stai cercando questo http://docs.python.org/3.2/extending/extending.html, o boost :: python (probabilmente più semplice), e anche le risposte a questa domanda possono essere un buon punto di partenza http: //stackoverflow.com/questions/276761/exposing-ac-api-to-python. Ad ogni modo, vuoi generare python api per il codice C++, questo è tutto, basta seguire la guida ufficiale o usare questa librerie. – user1797612