Sobes.tech
Junior — Middle

Pythonдо контекст менеджерин аныктоо үчүн кайсы ачкыч сөз колдонулат?

sobes.tech AI

AIден жооп

Pythonда, контекст менеджерин аныктоо үчүн анын колдонулушунда with ачкыч сөзү колдонулат, жана өзүнүн контекст менеджерин түзүү үчүн көбүнчө __enter__ жана __exit__ методдору класста колдонулат.

Бирок, эгерде бул функция-контекст менеджердин декларациясы болсо, contextlib модулунан @contextmanager декоратору колдонулат.

Класс аркылуу контекст менеджерин түзүү мисалы:

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__ методдору (аныктоо үчүн) болуп саналат.