Sobes.tech
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)

Декораторите помагат за писане на по-чист и поддържан код, особено при автоматизация на тестове, където често е необходимо да се добавят повтарящи се действия около тестовите функции.