Sobes.tech
Back to questions
Junior — Middle
54

Какие шаги и элементы нужны для создания менеджера контекста в Python-классе?

Companies where asked
Леста

Answer from AI

sobes.tech AI

Для создания менеджера контекста в Python-классе нужно реализовать два специальных метода:

  1. __enter__(self) — вызывается при входе в блок with. Здесь обычно инициализируются ресурсы и возвращается объект, который будет доступен внутри блока.

  2. __exit__(self, exc_type, exc_val, exc_tb) — вызывается при выходе из блока with, независимо от того, произошло исключение или нет. Здесь обычно освобождаются ресурсы.

Пример:

class MyContextManager:
    def __enter__(self):
        print("Вход в контекст")
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Выход из контекста")
        # Можно обработать исключения, если нужно

with MyContextManager() as manager:
    print("Внутри блока with")

Таким образом, ключевые шаги — определить эти два метода в классе, чтобы объект мог использоваться в конструкции with.