Sobes.tech
Junior — Middle

Magyarázza el a dekorátorok fogalmát Pythonban, és hogyan használják a függvények viselkedésének megváltoztatására.

sobes.tech MI

Válasz az MI-től

A Python dekorátorok olyan függvények, amelyek egy másik függvényt fogadnak el, és egy új, módosított vagy kibővített viselkedésű függvényt adnak vissza, anélkül, hogy megváltoztatnák a dekorált függvény forráskódját.

Gyakran használják őket:

  • Hívások naplózására
  • Hozzáférési jogosultságok ellenőrzésére
  • Eredmények gyorsítótárazására
  • Végrehajtási idő mérésére

Egy egyszerű dekorátor példája, amely üzenetet ír ki a függvény hívása előtt és után:

def decorator(func):
    def wrapper(*args, **kwargs):
        print("A függvény hívása előtt")
        result = func(*args, **kwargs)
        print("A függvény hívása után")
        return result
    return wrapper

@decorator
def say_hello(name):
    print(f"Szia, {name}!")

say_hello("Világ")

A kimenet így fog kinézni:

A függvény hívása előtt
Szia, Világ!
A függvény hívása után

Így a dekorátorok lehetővé teszik a függvények viselkedésének dinamikus módosítását anélkül, hogy megváltoztatnák azok forráskódját.