Sobes.tech
Junior — Middle

Vysvětlete koncept dekorátorů v Pythonu a jak jsou používány k změně chování funkcí.

sobes.tech AI

Odpověď od AI

Dekorátory v Pythonu jsou funkce, které přijímají jinou funkci a vracejí novou funkci s upraveným nebo rozšířeným chováním, aniž by měnily zdrojový kód dekorované funkce.

Často se používají pro:

  • Logování volání
  • Kontrolu přístupových práv
  • Ukládání výsledků do mezipaměti
  • Měření doby běhu

Příklad jednoduchého dekorátoru, který vypíše zprávu před a po volání funkce:

def decorator(func):
    def wrapper(*args, **kwargs):
        print("Před voláním funkce")
        result = func(*args, **kwargs)
        print("Po volání funkce")
        return result
    return wrapper

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

say_hello("Svět")

Výstup bude:

Před voláním funkce
Ahoj, Svět!
Po volání funkce

Tímto způsobem dekorátory umožňují dynamicky měnit chování funkcí, aniž by bylo nutné měnit jejich zdrojový kód.