¿Debo probar que if
algo es válido o simplemente try
hacerlo y detectar la excepción?
- ¿Existe alguna documentación sólida que diga que se prefiere una forma?
- ¿Es una forma más pitónica ?
Por ejemplo, debería:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
O:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
Algunas reflexiones ...
PEP 20 dice:
Los errores nunca deben pasar en silencio.
A menos que sea silenciado explícitamente.
¿Debería usarse un en try
lugar de un if
como un error que pasa silenciosamente? Y si es así, ¿lo está silenciando explícitamente al usarlo de esta manera, por lo tanto, está bien?
Estoy no se refiere a situaciones en las que sólo se puede hacer las cosas 1 manera; por ejemplo:
try:
import foo
except ImportError:
import baz
if index in mylist
prueba si el índice es un elemento de mylist, no un índice posible. Te gustaría en suif index < len(mylist)
lugar.