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

Зачем нужен декоратор, если можно написать функцию в не класса

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

  • Повторного использования кода (например, логирование, проверка прав)
  • Разделения ответственности (основная логика vs. дополнительная)
  • Чистого кода (избегаем дублирования)

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

python
def log_time(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"Time: {time.time() - start:.2f}s")
        return result
    return wrapper

@log_time
def calculate():
    return sum(range(10**6))

Без декоратора пришлось бы добавлять логику в саму функцию или вызывать её через обёртку вручную. Декораторы делают это элегантнее и поддерживают принцип DRY.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

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