Ho incorporato python in C++ e vorrei sapere se c'è un modo per trovare il tipo di boost :: python :: che è un risultato dopo l'esecuzione di una funzione di un modulo python. Io ho il mio codice come questo:Trova il tipo di oggetto boost python
boost::python::object module_ = boost::python::import("..libName");
boost::python::object result_ = module_.attr("..functionName")(arg1, arg2,...);
//suppose if the result is int,
int a_ = boost::python::extract<int>(result_);
Dal frammento di codice di cui sopra, quello che vorrei sapere è se c'è modo di trovare il tipo del risultato prima di estrarlo. Nel codice sopra, il risultato_ potrebbe essere qualsiasi tipo come lista, tuple ...
Come hai suggerito non è affidabile. estratto accetterà felicemente numeri interi –
Sergei
Sì. Da questo post, ho capito che 'extract' proverà a convertire automaticamente tra tipi compatibili. Il modo per essere sicuri che sia esattamente un numero intero è usare 'PyInt_Check'. – csl