Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от 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__ (за дефиниране).