Seite 1 von 1

Module in C: Booleans mit Py_BuildValue()?

Verfasst: Freitag 10. November 2006, 15:38
von Rebecca
Ich schreibe gerade ein Python-Modul in C. Mit Py_BuildValue gebe ich Python-Objekte zurueck, hier steht ja, wie ich damit die unterschiedlichen Datentypen von Python erzeugen kann. Ich finde aber nirgends, wie ich True oder False erzeugen kann... :roll:

Weiss da jemand bescheid?

Verfasst: Freitag 10. November 2006, 17:28
von birkenfeld
Gar nicht. Du wirst wohl den Platz mit etwas anderem füllen müssen, die Stelle wieder decrefen und mit PyTuple_SetItem auf Py_True/Py_False setzen.

Verfasst: Freitag 10. November 2006, 17:37
von birkenfeld
Ein eleganterer Weg wäre eine Converterfunktion:

Code: Alles auswählen

PyObject *
to_bool(int val) {
 if (int) Py_RETURN_TRUE;
 Py_RETURN_FALSE;
}

res = Py_BuildValue("O&", to_bool, 1);

Verfasst: Freitag 10. November 2006, 18:41
von Rebecca
birkenfeld, die zweite Version gefaellt mir gut. Danke!