[Python-es] Python y/o ruby para no programadores
Olemis Lang (Simelix)
olemis+py en gmail.com
Mar Feb 9 21:01:46 CET 2010
2010/2/9 Chema Cortes <pych3m4 en gmail.com>:
> 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:
>
Voy a ser sincero y, para poder entender, voy a confesar que no
entendí nada del comentario. Al menos yo estaba hablando de casos bien
conocidos [1]_ [2]_ [3]_ ... y mencionados por ahí hace mucho tiempo
ya ... o sea q en principio no estoy hablando de algo q haya inventado
yo. Principalmente no entiendo q tienen q ver los módulos acá,
sospecho q, por carácter transitivo, si yo no he pensado bien lo q he
dicho entonces todas las personas q aparecen en las referencias
tampoco, y los q redactaron la FAQ de Py tampoco; así q no me siento
tan solo.
Quizás es q realmente entendí menos de lo q creo haber entendido ... ;o)
> #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.
>
+-0
> 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.
Bueno esto no quiere decir q Python sea más o menos malo. Solo q según
el significado de la palabra si no lo tiene es una carencia, ¿no?
> Si hablamos en concreto de la "enseñanza" de la
> programación,
Es por eso q continué la conversación en otro hilo aparte
;o)
.. [1] Easy "switch statements" and "function overloading" in python
(http://www.python.org/search/hypermail/python-1994q2/0053.html)
.. [2] Why doesn’t Python have a switch statement?
(http://stackoverflow.com/questions/374239/why-doesnt-python-have-a-switch-statement)
.. [3] Switch statement
(http://en.wikipedia.org/wiki/Switch_statement#Python)
.. [4] Why isn't there a switch or case statement in Python?
(http://www.python.org/doc/faq/general/#why-isn-t-there-a-switch-or-case-statement-in-python)
--
Regards,
Olemis.
Blog ES: http://simelo-es.blogspot.com/
Blog EN: http://simelo-en.blogspot.com/
Featured article:
Free milestone ranch Download - mac software -
http://feedproxy.google.com/~r/TracGViz-full/~3/rX6_RmRWThE/
Más información sobre la lista de distribución Python-es