Встречается на собеседованиях • сегодня

Зачем нужен декоратор в Python

Декораторы позволяют динамически изменять поведение функции или класса без изменения их исходного кода. Они оборачивают целевую функцию, добавляя дополнительную логику до/после вызова.

Основные применения:

  • Логирование
  • Кеширование
  • Проверка прав доступа
  • Замер времени выполнения
  • Повторные попытки при ошибках

Пример простого декоратора:

python
def log_time(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"Время выполнения: {time.time() - start:.2f} сек")
        return result
    return wrapper

@log_time
def heavy_calculation():
    time.sleep(1)
    return 42

Декораторы делают код чище, разделяя основную логику и вспомогательную функциональность. Они реализуют принцип DRY (Don't Repeat Yourself) и позволяют легко переиспользовать общую логику для разных функций.

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы