Назад к вопросам
Middle
70
questionbank

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

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

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

Основные характеристики:

  • Гибкость: Позволяет добавлять или удалять функциональность объектов во время выполнения.
  • Независимость: Новая функциональность может быть добавлена независимо от основного класса.
  • Использование композиции: Декоратор содержит ссылку на декорируемый объект и перенаправляет к нему запросы, добавляя до или после выполнения какую-либо логику.

Применение:

  • Логирование
  • Проверка доступа (аутентификация/авторизация)
  • Добавление метаданных
  • Изменение поведения методов

Пример в Python:

# Простая функция для декорирования
def my_function():
    return "Hello"

# Декоратор
def simple_decorator(func):
    def wrapper():
        print("Before function call")
        result = func()
        print("After function call")
        return result
    return wrapper

# Применение декоратора
@simple_decorator
def decorated_function():
    return "World"

# Вызов декорированной функции
# decorated_function() would output:
# Before function call
# After function call
# and return "World"