Programación y sintaxis · revisado en agosto de 2026
Decorador
Un decorador es una función de Python que envuelve otra función (o método) para añadirle comportamiento — registro, medición de tiempo, control de acceso — sin modificar su código interno. Se aplica con la sintaxis @nombre_decorador justo encima de la definición de la función.
import time
def medir_tiempo(func):
def envoltura(*args, **kwargs):
inicio = time.perf_counter()
resultado = func(*args, **kwargs)
print(f"{func.__name__} tardó {time.perf_counter() - inicio:.4f}s")
return resultado
return envoltura
@medir_tiempo
def procesar(datos):
return sorted(datos)Preguntas frecuentes
¿Cómo funciona un decorador por dentro?
Recibe la función original como argumento y devuelve una nueva función (normalmente definida con *args y **kwargs) que ejecuta lógica antes y/o después de llamar a la original.
¿Un decorador puede recibir sus propios argumentos?
Sí, agregando una capa extra: una función que recibe los argumentos del decorador y devuelve el decorador propiamente dicho, que a su vez envuelve la función objetivo.
¿Para qué se usan en la práctica?
Para registrar rutas en frameworks como FastAPI (@app.get(...)), cachear resultados, medir tiempos de ejecución, o exigir autenticación antes de correr una función — siempre lógica transversal que aplica a muchas funciones distintas.