Назад к вопросам
Middle
69
questionbank
Что такое декоратор в Python и в каких случаях его можно применять?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Декоратор — это особый вид функции, который принимает другую функцию в качестве аргумента, расширяет ее функциональность и возвращает новую (декорированную) функцию без изменения исходного кода декорируемой функции. Он используется для оборачивания функций или методов и управления их поведением.
Применяется в случаях:
- Логирование: Запись информации о вызове функции (аргументы, результат, время выполнения).
- Измерение времени выполнения: Определение производительности функции.
- Проверка прав доступа: Ограничение выполнения функции для определенных пользователей или групп.
- Кэширование: Сохранение результатов выполнения функции для повторного использования с теми же аргументами.
- Обработка ошибок: Перехват исключений и выполнение дополнительных действий.
- Повторный вызов функция при ошибке: Автоматическое повторное выполнение при возникновении определенных исключений.
- Регистрация функций: Добавление функций в реестр или коллекцию.
Пример простого декоратора:
def my_decorator(func):
def wrapper(*args, **kwargs):
print("Что-то делаем до вызова функции")
result = func(*args, **kwargs)
print("Что-то делаем после вызова функции")
return result
return wrapper
@my_decorator
def say_hello(name):
return f"Привет, {name}!"
# say_hello("мир") # Выведет:
# Что-то делаем до вызова функции
# Что-то делаем после вызова функции
# "Привет, мир!"