Как работает декоратор
Python
Middle
Без компании
Как работает декоратор
Ответы
Декоратор в Python — это функция, которая принимает другую функцию и расширяет её поведение без изменения её кода. Декораторы оборачивают целевую функцию, добавляя логику до/после вызова или модифицируя аргументы/результат.
Пример простого декоратора:
```
def my_decorator(func):
def wrapper():
print("До вызова функции")
func()
print("После вызова функции")
return wrapper
@my_decorator
def say_hello():
print("Привет!")
say_hello()
```
Вывод:
```
До вызова функции
Привет!
После вызова функции
```
Ключевые моменты:
- Декоратор принимает функцию как аргумент
- Возвращает новую функцию (обычно `wrapper`)
- Синтаксис `@decorator` — это "сахар" для `func = decorator(func)`
- Для сохранения метаданных используют `functools.wraps`
Декораторы часто применяют для:
- Логирования
- Замеров времени выполнения
- Кеширования
- Проверки прав доступа
- Транзакций БД