Siempre he codificado en el estilo de if not value
, sin embargo, algunas guías me han llamado la atención que aunque este estilo funciona, parece tener 2 problemas potenciales:Python: si no val, vs si val es None
- No es completamente legible;
if value is None
es seguramente más comprensible. - Esto puede tener implicaciones más adelante (y causar errores sutiles), ya que cosas como
[]
y0
evaluarán también aFalse
.
También estoy empezando a aplicar esta idea a otras comparaciones, tales como:
if not value
vsif value is False
if not value
vsif value is []
Y así va la lista ...
La pregunta es, ¿qué tan lejos vas con la p ¿Principio? ¿Dónde dibujar la línea, mientras mantiene su código seguro?
¿Debo utilizar siempre el estilo if value is None
pase lo que pase?
Una de las disciplinas de escritura de Pythons es ** pato ** tipado. En el caso de 'None',' [] ',' 0' y así sucesivamente eso significa 'Si algo parece nada, actúa como nada, entonces no es nada. Si necesita ser más explícito sobre el valor que se prueba, use '=='. – nagisa