Sobes.tech
Back to questions
Junior — Middle
67

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

Answer from AI

sobes.tech AI

Да, паттерн декоратор часто применяется для расширения функциональности объектов без изменения их исходного кода. В Python это удобно реализовать с помощью классов или функций-обёрток.

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

Пример использования декоратора для логирования вызовов функции:

def log_decorator(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_decorator
def add(a, b):
    return a + b

add(2, 3)

Такой подход позволяет добавлять новые возможности (логирование, проверку, кеширование) без изменения исходного кода функций.