2010/2/9 Chema Cortes <pych...@gmail.com>: > El día 9 de febrero de 2010 14:09, Olemis Lang (Simelix) > <olemis...@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/ _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/