Sobes.tech
Назад к вопросам
Junior — Middle
51

Каким образом реализовать использование менеджера контекста в Python без применения конструкции with?

Ответ от нейросети

sobes.tech AI

Менеджер контекста в Python — это объект, который реализует методы __enter__() и __exit__(). Обычно его используют с конструкцией with, но можно вызвать эти методы напрямую, чтобы добиться того же эффекта без with.

Пример:

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

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Выход из контекста")

cm = MyContextManager()
cm.__enter__()
try:
    print("Работа внутри контекста")
finally:
    cm.__exit__(None, None, None)

Таким образом, можно вручную вызвать __enter__() перед блоком кода и __exit__() после него, обеспечивая те же действия, что и with.