Junior — Middle
Kas teil on kogemusi dekoratiivsete funktsioonide kasutamisel oma projektides?
sobes.tech AI
Vastus AI-lt
Jah, oma projektide raames olen kasutanud dekoraatoreid funktsioonide ja meetodite funktsionaalsuse laiendamiseks ilma nende lähtekoodi muutmata. Näiteks funktsioonikutsumiste logimiseks, täitmisaja mõõtmiseks või juurdepääsuõiguste kontrollimiseks.
Lihtsa dekoratsiooni näide logimiseks:
def log_calls(func):
def wrapper(*args, **kwargs):
print(f"Funktsiooni {func.__name__} kutsumine args: {args}, kwargs: {kwargs}")
result = func(*args, **kwargs)
print(f"Funktsioon {func.__name__} tagastas {result}")
return result
return wrapper
@log_calls
def add(a, b):
return a + b
add(2, 3)
Dekoratsioonid aitavad kirjutada puhtamat ja hooldatavamat koodi, eriti testide automatiseerimisel, kus sageli on vaja lisada korduvaid tegevusi testifunktsioonide ümber.