2013-04-05 7 views
5

Ich versuche, einige Code von 2 bis 3 und das folgende einfache Skript inWarum erhalte ich eine Fehlermeldung in Python 'kann den Namen NoneType nicht importieren'?

ImportError: cannot import name NoneType

import types 
from types import NoneType 

Ergebnisse umwandeln Wie kann ich den oben 2 bis 3-Format konvertieren?

+0

Da es immer nur eine Instanz von 'NoneType' gibt, ist' x None' genau gleich 'isinstance (x, NoneType) '. Wenn Sie den Typ gegen "None" prüfen, stimmt etwas nicht. –

+0

@GarethLatty Es ist nützlich für den Tupel-Anwendungsfall. 'isinstance (json_compatible_basic_type_expected, (int, float, str, NoneType))' – Ekevoo

Antwort

8

Es gibt keine NoneType Referenz in den types Modulen mehr. Sie sollten einfach mit None direkt auf Identität prüfen, d. H. obj is None. Eine alternative Art und Weise, wenn Sie wirklich die NoneType benötigen, wäre es zu erhalten mit:

NoneType = type(None) 

Dies ist eigentlich genau die gleiche Art und Weise types.NoneType vorher definiert wurde, bevor es auf November 28th, 2007 entfernt wurde.

Als Nebenbemerkung müssen Sie kein Modul importieren, um die from .. import-Syntax verwenden zu können, sodass Sie Ihre import types-Zeile löschen können, wenn Sie die Modulreferenz nirgendwo sonst verwenden.

Verwandte Themen