Decoradores y Closures
Decoradores
Los decoradores son funciones que modifican el comportamiento de otras funciones. Se utilizan para aplicar funcionalidades adicionales como autenticación, registro de llamadas, validación, etc.
Sintaxis:
def decorador(func):
def wrapper():
print("Antes de ejecutar la función")
func()
print("Después de ejecutar la función")
return wrapper
@decorador
def saludar():
print("Hola!")
saludar()
El @decorador es azúcar sintáctico para saludar = decorador(saludar)
Closures
Un closure es una función interna que recuerda y tiene acceso a las variables de la función externa, incluso después de que esta haya finalizado su ejecución.
Ejemplo:
def crear_multiplicador(factor):
def multiplicar(numero):
return numero * factor
return multiplicar
por_dos = crear_multiplicador(2)
print(por_dos(5)) # Salida: 10
Útiles para crear funciones personalizadas dinámicamente.