Junior — Middle
Објасните концепт декоратора у Python-у и како се користе за промену понашања функција.
sobes.tech АИ
Одговор од АИ
Dekoratori u Pythonu su funkcije koje prihvataju drugu funkciju i vraćaju novu funkciju sa izmenjenim ili proširenim ponašanjem, bez menjanja izvornog koda dekorisane funkcije.
Često se koriste za:
- Logovanje poziva
- Proveru prava pristupa
- Keširanje rezultata
- Merenje vremena izvršenja
Primer jednostavnog dekoratora koji prikazuje poruku pre i posle poziva funkcije:
def decorator(func):
def wrapper(*args, **kwargs):
print("Pre poziva funkcije")
result = func(*args, **kwargs)
print("Posle poziva funkcije")
return result
return wrapper
@decorator
def say_hello(name):
print(f"Zdravo, {name}!")
say_hello("Svet")
Izlaz će biti:
Pre poziva funkcije
Zdravo, Svet!
Posle poziva funkcije
Na ovaj način, dekoratori omogućavaju dinamičko menjanje ponašanja funkcija bez menjanja njihovog izvornog koda.