[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