Sobes.tech
Junior — Middle

Měl jste zkušenosti s používáním dekorátorů ve svých projektech?

sobes.tech AI

Odpověď od AI

Ano, ve svých projektech jsem používal dekorátory k rozšíření funkčnosti funkcí a metod, aniž bych měnil jejich zdrojový kód. Například pro zaznamenávání volání funkcí, měření doby běhu nebo kontrolu oprávnění.

Příklad jednoduchého dekorátoru pro zaznamenávání:

def log_calls(func):
    def wrapper(*args, **kwargs):
        print(f"Volání funkce {func.__name__} s argumenty {args} {kwargs}")
        result = func(*args, **kwargs)
        print(f"Funkce {func.__name__} vrátila {result}")
        return result
    return wrapper

@log_calls
def add(a, b):
    return a + b

add(2, 3)

Dekorátory pomáhají psát čistší a lépe udržovatelný kód, zejména při automatizaci testů, kde je často potřeba přidat opakované akce kolem testovacích funkcí.