Sobes.tech
Junior — Middle

Vysvetlite koncept dekorátorov v Pythone a ako sa používajú na zmenu správania funkcií.

sobes.tech AI

Odpoveď od AI

Dekorátory v Pythone sú funkcie, ktoré prijímajú inú funkciu a vracajú novú funkciu s upraveným alebo rozšíreným správaním, bez zmeny zdrojového kódu dekorovanej funkcie.

Často sa používajú na:

  • Logovanie volaní
  • Kontrolu prístupových práv
  • Ukladanie výsledkov do vyrovnávacej pamäte
  • Meranie času vykonávania

Príklad jednoduchého dekorátora, ktorý vypíše správu pred a po volaní funkcie:

def decorator(func):
    def wrapper(*args, **kwargs):
        print("Pred volaním funkcie")
        result = func(*args, **kwargs)
        print("Po volaní funkcie")
        return result
    return wrapper

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

say_hello("Svet")

Výstup bude:

Pred volaním funkcie
Ahoj, Svet!
Po volaní funkcie

Týmto spôsobom umožňujú dekorátory dynamicky meniť správanie funkcií bez zmeny ich zdrojového kódu.