problema con getattr y otras dudas de novato...
Arnau Sanchez
pyarnau en gmail.com
Mar Ene 8 18:08:48 CET 2008
Milton Galo Patricio Inostroza Aguilera escribió:
> ¿es necesario que la definición de una función esté dentro de otra
> función? ¿Por qué?
No sé si es necesario en este caso, pero definir funciones dentro de
otras es perfectamente aceptable (si bien no muy extendido en Python, es
práctica común en otros lenguajes, LISP y dialectos especialmente).
Una ventaja es que te permite romper código en trozos más pequeños (a
los que, además, debes poner un nombre), sin tener que crear más y más
funciones en el primer nivel (que ensuciarían innecesariamente el
espacio de nombres).
Si quieres crear código que siga paradigmas de FP (programación
funcional) es casi inevitable hacerlo. Un ejemplo muy simple:
def procesar_elementos(elementos):
de procesar(elemento):
# hacer cosas
# return resultado
def condicion(elemento):
# hacer cosas
# return resultado_de_la_condicion
# return map(procesar, filter(condicion, elementos))
return [procesar(elemento) if condition(elemento)]
Quería completar la entrada de FP que hay en el FAQ, pero si hay algún
experto en la sala le cedo el trabajo gustoso. Lo poco que sé de FP lo
he aprendido resolviendo problemas del proyecto Euler, para los curiosos:
http://pyeuler.wikidot.com/
Aunque Python no es, ni por asomo, el lenguaje ideal para FP, desde que
cuenta con iteradores y generadores se pueden hacer cosas muy
interesantes. Para FP de verdad, hay que irse a otros lenguajes como
Haskell.
arnau
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es