Все квизы
Жизненный цикл ресурсов
Проведи ревью четырёх фрагментов для Python 3.14, которые управляют временным состоянием, транзакцией, файлом и блокировкой. Найди дефект жизненного цикла ресурса и выбери исправление, которое работает и при исключении.
Код-ревью
as_user должна временно установить active_user и всегда восстановить прежнее значение. После исключения внутри with остаётся admin. Как исправить менеджер контекста?
from contextlib import contextmanager
active_user = "guest"
@contextmanager
def as_user(user):
global active_user
previous = active_user
active_user = user
yield
active_user = previous