Un decorador es una función que envuelve a otra función para añadir comportamiento, sin modificar el código de la original. Se aplica con la sintaxis @decorator encima de una función — una forma limpia de añadir aspectos transversales como logging, medición de tiempo, caching o control de acceso.
Cómo funcionan los decoradores
():
():
()
result = func(*args, **kwargs)
()
result
wrapper
():
()
greet()
