Проверяет понимание различий между теоретическим паттерном и его практической реализацией в Python.
Паттерн "Декоратор" — это общий принцип добавления новой функциональности объекту без изменения его кода. Декораторы в Python — синтаксический сахар (@decorator), который упрощает применение этого паттерна к функциям/классам.
1. Паттерн "Декоратор" (теория):
Цель: Динамически добавлять новое поведение объекту.
Принцип: Обернуть объект в другой объект-декоратор с доп. функциональностью.
Пример из жизни: Кофе (базовый объект) + декораторы "с молоком", "с сахаром".
2. Декораторы в Python (практика):
Синтаксис: Используется @имя_декоратора перед функцией/классом.
Реализация: Декоратор — это функция, принимающая исходную функцию и возвращающая новую.
Пример:
def logger(func):
def wrapper(*args, **kwargs):
print(f"Вызов функции {func.__name__}")
return func(*args, **kwargs)
return wrapper
@logger
def greet(name):
print(f"Привет, {name}!")
greet("Анна") # Сначала напечатает "Вызов функции greet"Декораторы в Python — упрощённая реализация паттерна для работы с функциями.