Sobes.tech
Back to questions
Junior — Middle
84

Какое ключевое слово в Python применяют для определения контекстного менеджера?

Companies where asked
МТСМТС

Answer from AI

sobes.tech AI

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

Однако, если речь идет о декларации функции-контекстного менеджера, то используется декоратор @contextmanager из модуля contextlib.

Пример создания контекстного менеджера с помощью класса:

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

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

with MyContextManager():
    print('Внутри контекста')

Пример с использованием @contextmanager:

from contextlib import contextmanager

@contextmanager
def my_context():
    print('Вход')
    yield
    print('Выход')

with my_context():
    print('Внутри')

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