8.2 Das Nichts – NoneType 

Beginnen wir mit dem einfachsten Datentyp überhaupt: dem Nichts. Der dazu gehörige Basisdatentyp wird NoneType genannt. Es drängt sich natürlich die Frage auf, wieso es eines Datentyps bedarf, der einzig und allein dazu da ist, »nichts« zu repräsentieren. Nun, es ist eigentlich nur konsequent. Stellen Sie sich einmal folgende Situation vor: Sie implementieren ein Verfahren, bei dem jede reelle Zahl ein mögliches Ergebnis ist. Allerdings kann es in einigen Fällen vorkommen, dass die Berechnung nicht durchführbar ist. Welcher Wert soll als Ergebnis zurückgegeben werden? Richtig: »Nichts«. Auch dass das »Nichts« in Python ein eigener Datentyp ist, hat durchaus seine Berechtigung, denn dadurch kann man Variablen explizit auf den Wert »Nichts« testen.
Kommen wir zur konkreten Verwendung des Datentyps: Es gibt nur eine einzige Instanz des »Nichts« namens None. Dies ist eine Konstante, die Sie jederzeit im Quelltext verwenden können:
>>> ref = None >>> ref >>> print ref None
Im Beispiel wurde eine Referenz namens ref auf None angelegt. Dass None tatsächlich dem »Nichts« entspricht, merken wir in der zweiten Zeile. Wir versuchen, ref vom Interpreter ausgeben zu lassen, und erhalten tatsächlich kein Ergebnis. Um den Wert dennoch auf dem Bildschirm ausgeben zu können, müssen wir uns des Schlüsselwortes print bedienen.
Es wurde bereits gesagt, dass None die einzige Instanz des »Nichts« ist. Diese Besonderheit können wir uns zunutze machen, um sehr effizient zu überprüfen, ob eine Referenz auf None verweist oder nicht:
if ref is None: print "ref ist None"
Mit dem Schlüsselwort is wird überprüft, ob die von ref referenzierte Instanz mit None identisch ist. Diese Art, einen Wert auf None zu testen, kann vom Interpreter schneller ausgeführt werden, als der wertbezogene Vergleich mit dem Operator ==, der selbstverständlich auch möglich ist. Beachten Sie, dass diese beiden Operationen nur in diesem Fall und auch hier nur vordergründig äquivalent sind: Mit == werden zwei Werte und mit is zwei Identitäten auf Gleichheit geprüft.




bestellen





