Frage

Alle Python-bereitgestellt Typen haben eine Prüfmethode (das heißt, PyList_Check), die Sie, wenn eine beliebige PyObject* überprüfen können ist eigentlich eine bestimmte Art.

Wie kann ich das für meine eigenen Typen implementieren? Ich habe nichts Gutes online diese gefunden, obwohl es wie eine ziemlich normale Sache scheint zu wollen, zu tun.

Auch, vielleicht bin ich einfach schrecklich große Quelle Bäume Blick durch, aber ich kann mich nicht für das Leben finden, die Umsetzung von PyList_Check oder irgendetwas davon Begleiter in der Python (2.5) Quelle.

War es hilfreich?

Lösung

Das ist, weil sie sind Makros , die tief Magie verwenden. Sparen Sie sich ein bisschen Kopfschmerzen und Verwendung PyObject_IsInstance() statt.

Andere Tipps

Wenn Sie möchten, dass Ihre eigene Makro implementieren, könnte man versuchen ...

#define PyMyType_Check(op) \
    PyObject_TypeCheck(op, &PyMyType_Type)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top