¿Es una mala práctica usar el siguiente formato cuando my_var
puede ser Ninguno?¿Es seguro confiar en la orden de evaluación de condición en las declaraciones if?
if my_var and 'something' in my_var:
#do something
El tema es que 'something' in my_var
arrojará un TypeError si my_var es Ninguno.
o debería utilizar:
if my_var:
if 'something' in my_var:
#do something
o
try:
if 'something' in my_var:
#do something
except TypeError:
pass
reformular la pregunta, que de lo anterior es la mejor práctica en Python (si los hay)?
¡Las alternativas son bienvenidas!
Cuando veo un código como el segundo, supongo que el codificador no entendió cómo funciona la evaluación de cortocircuito. – Dana
-1: Sin citas de la documentación: http://docs.python.org/library/stdtypes.html#boolean-operations-and-or-not –
@cfi: Como puedo cambiar mi voto después de que la respuesta cambia, No estoy seguro de cuál es el problema. –