Создание своего менеджера контекста
Содержание курса
0 / 1 баллов
Временная подмена атрибута
Реализуйте класс-контекстный менеджер temporary_attribute(obj, name, value). При входе он временно устанавливает obj.<name> = value и возвращает obj. При выходе восстановите прежнее значение; если атрибута до входа не существовало, удалите его. Восстановление обязательно и после исключения.
Пример
config = type("Config", (), {"mode": "prod"})()
with temporary_attribute(config, "mode", "test") as current:
current.mode # "test"
config.mode # "prod"
Менеджер не подавляет исключения из блока.
О данных в ответах
Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.
Как проверяется решение
Проверяются функции и их результаты. Собственный запуск выполняет ваш код без авторских тестов. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.
Отправьте решение, чтобы увидеть результаты тестов.
