Escrito por coder el 25 de junio de 2008
Me ha llamado la atención este diseño de implementación: supongamos que tenemos un literal pi = '3.14' (pi simplificado) y queremos castearlo. En Python no es que haga realmente falta un cast porque ya existen funciones int() y float(), por lo que podríamos hacer esto:
>>> pi = '3.14'>>> pi'3.14'>>> print pi3.14>>>
>>> print float(pi)3.14>>>
>>> print int(pi)Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: invalid literal for int() with base 10: '3.14'>>>
>>> print int(float(pi))3>>>
« Local overlay en Paludis
La ley del mínimo esfuerzo me acompaña »
El 2008-06-26 13:25:08, Toro Nublado (213.201.92.70) dijo:
Nas, YPMQ es cosa del casting implicito de python. Si por definición los números enteros no tienen parte decimal, veo lógico que al hacer el cast de la cadena de un error, ya que encuentra un carácter que no debería aparecer en una cadena que se supone que representa a un entero (el puntico desimal). Por contra, la doble conversión string->float->int si que funciona porque haces un casting sobre una variable con tipo estricto. Esto, antes de iniciar un flamewar termonuclear global sobre python, es lo más normal y lógico del mundo. ¿Qué deducimos de todo esto? 1) que los lenguajes interpretados que se pasan por el forro los tipos de datos e inicialización de variables pueden retrasar el desarrollo de un proyecto por chorradas como esta. 2) que la cantidad de errores y funcionamiento ikeriano* que pueden aparecer en un desarrollo con este tipo de lenguajes se reducen utilizando tipos estrictos de datos. 3) que me aburro sobremanera en el trabajo y tengo tiempo de escribir un comentario sobre la deontología de la programación. Corolario: Sea L un lenguaje en el que ejecutas este mismo ejemplo y funciona, tenemos que la cantidad de errores y tiempo de depurado es mayor en función de la cantidad de castings que se realizan durante la ejecución del programa (vamos, digo yo...) *) ikeriano: dícese del comportamiento que, en principio parece cosa de fantasmas extraterrestres mayas, pero que en realidad es falta de investigación seria. Dew.
El 2008-06-30 18:55:12, coder (10.12.34.7) dijo:
Madre mía, entre este comentario y el de GLurPS... ¡se os ha ido la olla mucho!