Вопрос проверяет умение создавать собственные контекстные менеджеры для управления ресурсами.
Короткий ответ
Собственный контекстный менеджер можно реализовать через класс с методами __enter__ и __exit__. В __enter__ инициализируется ресурс. В __exit__ ресурс освобождается. Также можно использовать декоратор contextlib.contextmanager. Это упрощает код и делает его более читаемым.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.