2013-04-05 21 views
5

sto cercando di convertire il codice da 2 a 3 e la seguente semplice scriptPerché ricevo un messaggio di errore in Python 'impossibile importare il nome NoneType'?

import types 
from types import NoneType 

Risultati in

ImportError: cannot import name NoneType

Come posso convertire il sopra 2-3?

+0

Dato che esiste sempre un'istanza di 'NoneType',' x is None' è esattamente uguale a 'isinstance (x, NoneType)'. Se stai controllando il tipo con 'None', qualcosa non va. –

+0

@GarethLatty È utile per il caso di uso della tupla. 'isinstance (json_compatible_basic_type_expected, (int, float, str, NoneType))' – Ekevoo

risposta

8

Non è più presente un riferimento NoneType nei moduli types. Dovresti semplicemente controllare l'identità con None direttamente, ad esempio obj is None. Un modo alternativo, se si ha realmente bisogno la NoneType, sarebbe quella di ottenere utilizzando:

NoneType = type(None) 

Questo è in realtà allo stesso modo esatto types.NoneType è stato definito in precedenza, prima di essere rimosso su November 28th, 2007.

Come nota a margine, non è necessario importare un modulo per poter utilizzare la sintassi from .. import, in modo da poter eliminare la riga import types se non si utilizza il riferimento del modulo da nessun'altra parte.