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

Используешь ли декораторы в работе

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

  1. Логирования
python
def log_time(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"{func.__name__} took {time.time() - start:.2f}s")
        return result
    return wrapper

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

text

2. **Авторизации/валидации**  
```python
def check_auth(func):
    def wrapper(request, *args, **kwargs):
        if not request.user.is_authenticated:
            raise PermissionError
        return func(request, *args, **kwargs)
    return wrapper
  1. Кэширования (например, @functools.lru_cache)
  2. Ретриев (библиотеки типа @retry)

Важно:

  • Декораторы могут усложнить отладку (используйте functools.wraps для сохранения метаданных).
  • Вложенные декораторы выполняются сверху вниз (@A @B def fooA(B(foo))).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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