
Carlos José González Juan
PreguntaEsta genial la clase. Pero me asalta una duda: En el zen de Python dice que no se debe hacer codigo complicado. No se si me estoy adelantando a otras cosas, y se que este es un ejemplo… pero no entiendo muy bien para que usar estas funciones cuando con una sola funcion puedes hacerlo mas claro:
**#la funcion de la clase** > def repetidor (n): def repite(string): return string*n return repite repetido= repetidor (5) print (repetido('hola')) **#mi funcion** > def repetir (n, string): return string*n print (repetir(5,'hola'))

Cesar Hernández Ramírez
Ni yo le encuentro sentido todavía a utilizar closures. Me parece más una técnica muy buena de encapsulamiento. Al traernos todas esas variables de manera oculta a la función anidada, no se pueden modificar de ninguna manera desde nuestra función anidada.

Carlos Damián Loaiza Artunduaga
Hola Carlos, es cierto lo que dices en el sentido de usar decoradores en estos ejemplos ya que no hacen gran cosa, sin embargo es para explicar el funcionamiento de los closures en los programas hechos con Python ya que muchísimas librerías y frameworks de este lenguaje utilizan los closures y decoradores para sus procesos y por eso es importante entender como funcionan.
Un saludo :D

Axel Yaguana
Hola, Carlos.
Sí, de hecho en cualquier leguaje siempre es buena práctica mantener código sencillo. Lo que muestras creo que es un ejemplo para entender cómo usar una función dentro de otra función.
Por otra parte, a mi parecer el código que escribiste tú está más simplificado. 👍🏽
Recuerda que en programación no hay una única solución. Puedes escribir código de distintas formas para resolver el mismo problema.