1. Что такое декоратор?

1. Что такое декоратор?.md

Декоратор - это функция, которая принимает другую функцию (или метод) и расширяет или изменяет её поведение, не меняя сам код этой функции.

Пример:

def my_decorator(func):
    def wrapper():
        print("До выполнения функции")
        func()
        print("После выполнения функции")
    return wrapper


@my_decorator
def hello():
    print("Привет!")

hello()

Вывод:

До выполнения функции
Привет!
После выполнения функции

Зачем нужны декораторы?
1. Добавляет функциональность. Например, логгирование, кэширование, проверка прав.
2. Сохраняет чистоту кода. Логика декоратора вынесена отдельно.
3. Упрощает поддержку кода.