[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