[pyar] [Programacion] input function
Claudio Freire
klaussfreire en gmail.com
Mie Mar 7 11:24:36 ART 2012
2012/3/7 Ezequiel - <ezequielchan en gmail.com>:
> Que quiero decir con eso? que podes usar un try, no cuesta nada hasta
> que empiezan a existir exceptions en el medio, levantar toda la info
> necesaria es mas costosa y esta bien que no debas optimizar el código
> antes, pero para mi es mucho mas elegante y legible.
Y equivocado, en mi opinión.
Las validaciones que hace int() no son fácilmente reproducibles, y no
hay real necesidad de reproducirlas, cuando que es perfectamente
esperable que int() tire excepción. Lo que está mal es:
try:
x = hacealgo_con_el_numero(int(raw_input(...)))
except:
print "Meté un número"
Pero simplemente porque estás protegiendo mucho más código del deseado
y atrapando cualquier cosa indiscriminadamente, escondiendo errores
más que recuperándote de los mismos.
Lo correcto:
x = raw_input(...)
try:
x = int(x)
except ValueError:
print "Meté un número"
O sea, sólo atrapás el error que querés atrapar (ValueError), y sólo
protegés int(x).
More information about the pyar
mailing list