[Python-es] Python y/o ruby para no programadores

Chema Cortes pych3m4 en gmail.com
Mar Feb 9 19:54:46 CET 2010


El día 9 de febrero de 2010 14:09, Olemis Lang (Simelix)
<olemis+py en gmail.com> escribió:

>    - Otro ejemplo, la solución al `case` o `switch` de Python basada en dict(s)
>      implica q a cada llave se le asigne algo q, al ejecutarlo, se realiza lo
>      q sea específico de esa alternativa. Pasa algo más o menos semejante,
>      en Python resulta engorroso escribir una función para cada alternativa,
>      sin el propósito de reutilizarla (sino solo para suplir una carencia del
>      lenguaje) y la legibilidad es pésima, porq todo está separado y
>      disperso y con un vistazo no se puede tener idea de lo
>      q pasa. Con bloques inline como los de Ruby se podría mejorar esto.

Piensa un poco lo que estás diciendo:

"Crea un bloque "case" de funciones anónimas que se selecciona según
una clave de diccionario". Éso no es más que un "módulo" de python:

#a grosso modo
import modulo

if "MyFunc" in modulo.__dict__:
  modulo.MyFunc()


No creo que sea mejor tener bloques anónimos seleccionados por un
criterio arbitrario que tener estas funciones localizadas,
correctamente nombradas y documentadas (los IDEs lo suelen agradecer
;-). Representará un engorro, pero es tiempo que te ahorrarás en el
futuro.

Por supuesto que con los bloques de código se puede conseguir que el
código sea más legible y elegante; pero tampoco es para decir que en
python no haya nada parecido o que represente una carencia del
lenguaje. Si hablamos en concreto de la "enseñanza" de la
programación, creo que es mejor no habituarse a entremezclar las
definiciones con la lógica del programa, pero es tan sólo una
apreciación personal.



Más información sobre la lista de distribución Python-es