3. ¿Qué es un decorador?
Los decoradores son funciones que toman otra función como argumento y anidan una nueva función para agregarle código extra sin alterar la existente.
En el siguiente ejemplo, puedes ver la estructura general de una función decoradora.
TIP
Si alguna vez has visto @, estás ante un decorador.
Código Python 👇
def decorador(f):
def funcion_nueva():
print('Funcionalidad extra')
f()
return funcion_nueva
@decorador
def funcion_inicial():
print('Funcionalidad inicial')
funcion_inicial()
🕵️ Analicemos estos elementos en más detalle:
-
Esta es la
función_inicialque el@decoradorva tomar como referencia. -
Esta es una función intermediaria que va hacer la decoradoración
def decorador. El nombre de la función hace referencia a@decorador. Toma(f)como argumento para invocarf()más adelante dentro de lafunción_nueva()que va ir anidada.
- Si ejecutamos el código, podemos ver el siguiente resultado:
