variable validate not none python nonetype

validate - ¿Cómo "probar" NoneType en python?



python null variable (6)

Tengo un método que a veces devuelve un valor NoneType. Entonces, ¿cómo puedo cuestionar una variable que es un tipo de entrada? Necesito usar el método if , por ejemplo.

if not new: new = ''#''

Sé que es el camino equivocado y espero que entiendas lo que quise decir.


Entonces, ¿cómo puedo cuestionar una variable que es un tipo de entrada?

El uso is operador, como este

if variable is None:

¿Por qué esto funciona?

Ya que None es el único objeto singleton de NoneType en Python, podemos usar is operador para verificar si una variable tiene None en ella o no.

De citar is docs ,

Los operadores is y is not prueban la identidad del objeto: x is y es verdadero si y solo si x e y son el mismo objeto. x is not y produce el valor de verdad inverso.

Dado que solo puede haber una instancia de None , is sería la forma preferida de marcar None .

Escuchalo desde la boca del caballo.

Citas de las Pautas de estilo de codificación de Python - PEP-008 (definidas conjuntamente por el propio Guido),

Las comparaciones con singletons como None deben hacerse siempre con o is not , nunca con los operadores de igualdad .


No estoy seguro si esto responde a la pregunta. Pero sé que esto me tomó un tiempo para averiguar. Estaba recorriendo un sitio web y, de repente, el nombre de los autores ya no estaba allí. por lo que necesitaba una declaración de verificación.

if type (author) == type (None): my if body else: my else body

el autor puede ser cualquier variable en este caso, y Ninguno puede ser de cualquier tipo que esté verificando


Python 2.7:

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

o

isinstance(None, type(None))

==> Verdadero


Sin embargo, la forma más sencilla, sin la línea adicional, además de la respuesta del cardamomo, es:
isinstance(x, type(None))

Entonces, ¿cómo puedo cuestionar una variable que es un tipo de entrada? Necesito usar el método if

El uso de isinstance() no requiere un is dentro de la declaración if :

if isinstance(x, type(None)): #do stuff

Información Adicional
También puede verificar varios tipos en una declaración isinstance() como se menciona en la documentation . Solo escribe los tipos como una tupla.

isinstance(x, (type(None), bytes))


También se puede hacer con isinstance según la respuesta de Alex Hall :

>>> NoneType = type(None) >>> x = None >>> type(x) == NoneType True >>> isinstance(x, NoneType) True

isinstance también es intuitivo, pero existe la complicación de que requiere la línea.

NoneType = type(None)

que no es necesario para tipos como int y float .


if variable is None: print ''Is None''

-

if variable is not None: print ''Isn/'t None''