2017-01-30 2 views
-1

Zum Beispiel bei der Art der None suchen, können wir sehen, dass es NoneType hat:Wie kann auf den Typ NoneType zugegriffen werden?

>>> type(None) 
NoneType 

jedoch ein NameError Ergebnisse, wenn die NoneType zuzugreifen versuchen:

>>> NoneType 
NameError: name 'NoneType' is not defined 

Wie kann die NoneType zugegriffen ?

+0

Interessante tun können [None ein Singleton ist] (https://docs.python.org /3.6/c-api/none.html#the-none-object) – wwii

+1

warum brauchst du das? – furas

+0

auf Python 3 ist es '' – furas

Antwort

3

Nun, in Python 2, können Sie es aus dem types Modul importieren:

from types import NoneType 

aber es ist nicht wirklich dort oder etwas umgesetzt. types.py tut gerade NoneType = type(None). Sie können auch einfach type(None) direkt verwenden.

In Python 3 ist der Name types.NoneType weg. Verwenden Sie einfach type(None).


Wenn type(None) zeigt NoneType für Sie, anstatt etwas wie <class 'NoneType'>, sind Sie wahrscheinlich auf einige Nicht-Standard-Interpreter-Setup, wie IPython. Es würde in der Regel als etwas wie <class 'NoneType'> angezeigt werden, so dass es klarer, dass Sie nicht einfach NoneType eingeben und den Typ erhalten können.

+0

Könnte auch Typ (Obj) == Typ (None) statt der Mühe von Extra-Code tun? – hungryWolf

+0

user2357112, eine Idee, wie man es in Python3 importiert? Ich bekomme einen Importfehler in Python3: 'ImportError: Name kann nicht importiert werden 'NoneType'' @ user5676973 Mate, Sie vermissen den Punkt. – Greg

+0

Ja okay, ich vermisse den Punkt, kannst du das dann erklären? Meine Antwort scheint in Ordnung zu sein. – hungryWolf

0

Wie @dawg in den Kommentaren vorgeschlagen, können Sie

if (type(some_object).__name__ == "NoneType"): 
    # Do some 
    pass 

Sie auch

NoneType = type(None)  
isinstance(some_object, NoneType) 
Verwandte Themen