Sobes.tech
Back to questions
Junior — Middle
87

Имел ли опыт использования декораторов в своих проектах?

Companies where asked
Bytime

Answer from AI

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

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