Module in C: Booleans mit Py_BuildValue()?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

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?
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

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.
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

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);
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

birkenfeld, die zweite Version gefaellt mir gut. Danke!
Antworten