2015-04-19 9 views
12

Ich möchte nur überprüfen, ob eine PyObject, die ich habe, ist None. Ich habe naiv erwartet, dass alle NonePyobject * zurückgegeben von einer Funktion ein Nullzeiger wäre, aber das scheint nicht der Fall zu sein.Prüfen, ob PyObject ist Keine

Also: wie überprüfe ich, ob ein PyObject * von mir auf ein None Objekt zeigt?

Ich weiß, dass es Makros wie PyInt_Check(PyObject *) herum gibt, aber ich konnte nichts wie PyNone_Check finden. Ich dachte, ich könnte einfach die Gleichheit zwischen meinem PyObject und Py_None überprüfen, aber stellt sich heraus, dass ich nicht einmal weiß, wie Gleichheitsvergleiche mit dieser Bibliothek zu machen.

Antwort

13

Sie können nur direkt vergleichen mit Py_None== mit:

if (obj == Py_None) 

Vom docs:

Beachten Sie, dass die PyTypeObject für None nicht direkt in der API Python/C ausgesetzt. Da None ein Singleton ist, ist das Testen auf Objektidentität (unter Verwendung von == in C) ausreichend. Es gibt keine PyNone_Check() Funktion für aus dem gleichen Grund.