Sobes.tech
Junior — Middle

Mal ste skúsenosti s používaním dekorátorov vo svojich projektoch?

sobes.tech AI

Odpoveď od AI

Áno, vo svojich projektoch som používal dekorátory na rozšírenie funkčnosti funkcií a metód bez zmeny ich zdrojového kódu. Napríklad na zaznamenávanie volaní funkcií, meranie času vykonávania alebo kontrolu oprávnení.

Príklad jednoduchého dekorátora na zaznamenávanie:

def log_calls(func):
    def wrapper(*args, **kwargs):
        print(f"Volanie funkcie {func.__name__} s argumentmi {args} {kwargs}")
        result = func(*args, **kwargs)
        print(f"Funkcia {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ú písať čistejší a ľahšie udržiavateľný kód, najmä pri automatizácii testov, kde je často potrebné pridávať opakované akcie okolo testovacích funkcií.