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: #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. _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/