Назад к вопросам
Senior
5
Что такое декоратор принципиально?
Компании, где спрашивали
Trading view
Ответ от нейросети
sobes.tech AI
Декоратор — это шаблон проектирования и концепция, позволяющая динамически расширять или изменять поведение функции, метода или класса без изменения их исходного кода.
Принципиально, декоратор — это функция (или объект), которая принимает другую функцию и возвращает новую функцию с дополнительной функциональностью.
Например, в Python декоратор может логировать вызовы функции:
def log_decorator(func):
def wrapper(*args, **kwargs):
print(f"Вызов функции {func.__name__}")
result = func(*args, **kwargs)
print(f"Функция {func.__name__} завершена")
return result
return wrapper
@log_decorator
def say_hello(name):
print(f"Привет, {name}!")
say_hello('Мир')
Здесь @log_decorator оборачивает функцию say_hello, добавляя логи до и после её вызова.
Таким образом, декораторы позволяют:
- Добавлять к функциям кросс-функциональные возможности (логирование, кеширование, проверку прав и т.п.)
- Сохранять чистоту и читаемость основного кода
- Реализовывать повторно используемые обёртки без дублирования кода