695 Stimmen

Wie testet man den NoneType in Python?

Ich habe eine Methode, die manchmal einen Wert vom Typ NoneType zurückgibt. Wie kann ich also eine Variable abfragen, die vom Typ NoneType ist? Ich muss die if-Methode verwenden, zum Beispiel

if not new:
    new = '#'

Ich weiß, dass das der falsche Weg ist und ich hoffe, du verstehst, was ich meine.

2voto

Pesko Punkte 61

Python 2.7 :

x = None
isinstance(x, type(None))

oder

isinstance(None, type(None))

\==> True

2voto

Lars Blumberg Punkte 16435

Sie können explizit auf NoneType testen, indem Sie ihn importieren:

>>> from types import NoneType

oder, ohne Import:

>>> NoneType = type(None)

Wann ist dies nützlich?

Wenn Sie eine Variable haben, die optional ist und entweder auf ihren Typ oder auf None gesetzt werden kann. Jetzt möchten Sie ihren Typ validieren, indem Sie einen einzigen isinstance Aufruf verwenden:

>>> from types import NoneType
>>> foo = 'bar'
>>> assert isinstance(foo, (str, NoneType))

was äquivalent ist zu:

>>> assert isinstance(foo, str) or isinstance(foo, NoneType)

sowie:

>>> assert isinstance(foo, str) or (foo is None)

0voto

alexmosk25 Punkte 134

Ich hoffe, dieses Beispiel wird Ihnen helfen)

print(type(None))  # NoneType

Also kannst du den Typ des Variablennamens überprüfen

# Beispiel
name = 12  # name = None

if type(name) is type(None):
    print("Name nicht gefunden")
else:
    print(name)

0voto

Ich verwende hauptsächlich die folgende Methode, um auf den NoneType zu prüfen.

if (new): # nicht None
  ...
else: # NoneType
  ...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X