Junior — Middle
Vai jums ir pieredze dekoratoru izmantošanā savos projektos?
sobes.tech AI
Atbilde no AI
Jā, savos projektos esmu izmantojis dekoratorus, lai paplašinātu funkciju un meto funkcionalitāti, nemainot to avota kodu. Piemēram, funkciju izsaukumu reģistrēšanai, izpildes laika mērīšanai vai piekļuves tiesību pārbaudīšanai.
Vienkārša dekoratora piemērs reģistrēšanai:
def log_calls(func):
def wrapper(*args, **kwargs):
print(f"Funkcijas {func.__name__} izsaukums ar argumentiem {args} {kwargs}")
result = func(*args, **kwargs)
print(f"Funkcija {func.__name__} atgrieza {result}")
return result
return wrapper
@log_calls
def add(a, b):
return a + b
add(2, 3)
Dekoratori palīdz rakstīt tīrāku un uzturējamāku kodu, īpaši testu automatizācijā, kur bieži ir nepieciešams pievienot atkārtojošas darbības ap testu funkcijām.