Un decorador este o funcție care înfășoară o altă funcție pentru a adăuga comportament fără a modifica codul original. Este aplicat cu sintaxa @decorator deasupra unei funcții — o modalitate curată de a adăuga probleme transversale (cross-cutting concerns) cum ar fi logging, timing, caching sau control de acces.
Cum funcționează decoratorii
():
():
()
result = func(*args, **kwargs)
()
result
wrapper
():
()
greet()
