Вернуться в видеотекуСобеседование python Герман и Вячеслав vs декораторы
Практическое тренировочное собеседование по Python-декораторам с разбором двух реализаций: повторного вызова функции и кэширования результатов. Ведущий проверяет ход мысли участников, исправляет ошибки и даёт итоговый фидбек.
- Направление
- Backend
- Формат
- Мок-собеседование
- Грейд
- Junior
- Длительность
- 57 мин
Коротко о видео
Тренировочное собеседование для двух начинающих Python-разработчиков посвящено декораторам: один участник пишет декоратор повторных вызовов, другой — кэширующий декоратор. По ходу разбирают замыкания, `*args` и `**kwargs`, сохранение метаданных функции, генераторы, тестирование и ограничения ключей кэша. В финале ведущий даёт Герману и Вячеславу развивающую обратную связь и конкретные темы для доработки.
Затронутые темы
Что взять на заметку
- Нужно уметь объяснить, что декоратор принимает функцию, возвращает обёртку и может менять поведение до или после её вызова.
- Для декоратора с параметром требуется дополнительный уровень замыкания: внешний слой принимает параметр декоратора, следующий — исходную функцию, внутренний — её аргументы.
- `*args` передаёт позиционные аргументы, а `**kwargs` — именованные; при проксировании вызова их надо корректно распаковывать.
- Кэширующий декоратор должен строить ключ только из хешируемых аргументов; список внутри аргументов делает такой ключ непригодным и требует понятной обработки ошибки или преобразования данных.
- Кэш имеет смысл для функций, которые при одинаковых входных данных дают одинаковый результат; повторные вызовы при ошибках API — это отдельный сценарий retry-декоратора.
- При написании декоратора важно сохранять имя и документацию обёрнутой функции, например через `functools.wraps`.
- Для подготовки к собеседованию стоит отдельно практиковать декораторы, замыкания, итераторы и генераторы: ведущий назвал эти темы частыми вопросами.