Sobes.tech
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.