Junior — Middle
Имали ли сте опит с използването на декоратори в проектите си?
sobes.tech AI
Отговор от AI
Да, в проектите си съм използвал декоратори за разширяване на функционалността на функции и методи без да променям техния изходен код. Например, за логване на извикванията на функции, измерване на времето за изпълнение или проверка на права за достъп.
Пример за прост декоратор за логване:
def log_calls(func):
def wrapper(*args, **kwargs):
print(f"Обаждане на функция {func.__name__} с аргументи {args} {kwargs}")
result = func(*args, **kwargs)
print(f"Функцията {func.__name__} върна {result}")
return result
return wrapper
@log_calls
def add(a, b):
return a + b
add(2, 3)
Декораторите помагат за писане на по-чист и поддържан код, особено при автоматизация на тестове, където често е необходимо да се добавят повтарящи се действия около тестовите функции.