Как устроен контекстный менеджер изнутри? Что происходит с исключением внутри блока with и как бы вы написали менеджер, который управляет транзакцией в базе?
~4 мин голосом
Как подойти
Проверяют, понимаете ли вы протокол контекстного менеджера: как with вызывает __enter__ и __exit__, как через __exit__ проходит и подавляется исключение. Второе: умеете ли вы применить это к реальной задаче — транзакции с commit/rollback, вложенности и async.
Интервьюер задаст этот вопрос и послушает. Думай вслух, проси подсказку, если нужно. Закончил — пауза или «Я ответил», через минуту здесь балл и какие пункты закрыты.