Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: decorator, pattern

Разница между паттерном проектирования декоратор и реализацией в Python?

Проверяет понимание различий между теоретическим паттерном и его практической реализацией в 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 — упрощённая реализация паттерна для работы с функциями.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Python

    Python

Ключевые слова

#decorator

#pattern

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.