Seite 1 von 1

Python in C++ - Übergabe von boolschen Variablen

Verfasst: Montag 3. Juni 2013, 18:17
von MrSherenai
Hallo,

ich habe eine Python Funktion deren Rückgabetyp ein boolscher Typ ist. Allerdings finde ich in der Python3 Dokumentation keine Methode die es mir erlaubt das zurück erhaltene PyObject in bool zu casten bzw. auf den Typ zu testen, ich kann ja testen ob es vom Typ PyBool ist mit PyBool_check(), aber welcher der beiden Typen das ist bekomm ich nicht zurück.

Meine Überlegung bisher war das einfach auf long zu casten:

Code: Alles auswählen

Value = PyObject_CallObject(checkZusammengefuegte, Args);
cout << PyLong_AsLong(Value) << endl;
Habs schon getestet, Value ist sowohl vom Typ PyLong als auch PyBool, da PyBool nen subtyp von PyLong ist sollte das ja funktionieren oder nicht? Naja tuts aber nicht deshalb die Frage, wie bekomme ich die Rückgabewerte sauber in C++ übergeben?

Das Python Skript läuft Fehlerfrei.

P.S. Wenn irgendjemand irgendwo eine übersichtliche Dokumentation hat wie man die Typen ordentlich von Python nach C++ castet, da würd ich mich auch drüber freuen, find die Dokumentation der API was das angeht recht dürftig. Hab mich bisher immer damit über Wasser gehalten in der Dokumenation nach Datentypen zu suchen in der Hoffnung was brauchbares zu finden.

Re: Python in C++ - Übergabe von boolschen Variablen

Verfasst: Montag 3. Juni 2013, 18:55
von DasIch
Was stört dich an PyObject_IsTrue(PyObject *o)?

Re: Python in C++ - Übergabe von boolschen Variablen

Verfasst: Montag 3. Juni 2013, 18:58
von MrSherenai
Das ichs nicht allein gefunden hab, werds gleich mal ausprobieren, danke.

Re: Python in C++ - Übergabe von boolschen Variablen

Verfasst: Montag 3. Juni 2013, 20:25
von MrSherenai
So einfach kanns gehen, funktioniert perfekt für meine Zwecke, danke :).