Seite 1 von 1

leeres Tupel aufspüren?

Verfasst: Montag 14. September 2009, 18:34
von Maple99
Hi @ all,

weiss zufällig jemand wie man heraus bekommt, wenn man an eine C-Funktion in einem Modul ein leeres Tupel als Parameter (PyObject*) übergeben bekommt, ob das Tupel leer ist oder einen Wert enthält.

Gruß

Sascha

Verfasst: Montag 14. September 2009, 19:04
von BlackJack
@Maple99: Tupel haben eine Länge, die verrät, wieviele Werte drin sind. Wenn die Länge 0 ist, dann ist nichts drin.

Verfasst: Montag 14. September 2009, 19:22
von Maple99
Hi,

schon mal danke, aber wie lese ich diese denn in C aus?

Verfasst: Montag 14. September 2009, 22:30
von BlackJack
Wenn ich mal raten müsste mit PyTuple_GET_SIZE().

Verfasst: Montag 14. September 2009, 22:33
von Leonidas
Also wenn ich in die C-API-Dokumentation schaue, dann sehe ich dort nen Abschnitt "Sequence Protocol". Dort ist dann fast ganz oben "PySequence_Length"/"PySequence_Size" beschrieben, das ``len()`` in Python entspricht. Das klingt IMHO sehr nach dem gewünschten.

Verfasst: Dienstag 15. September 2009, 09:08
von Maple99
Hi,

super danke. Genau das war's was ich gesucht hatte :P