Sobes.tech
Junior — Middle
84

Python-да функция түрінде жеке контекст менеджерін қалай жүзеге асыруға болады?

AI-дан жауап

sobes.tech AI

Python-да өзіңіздің жеке контекст менеджеріңізді @contextlib.contextmanager декораторы арқылы функция түрінде жасауға болады. Бұл with конструкциясын ресурстарды басқару үшін қолдануға мүмкіндік береді.

Мысал ретінде, кірісу және шығу кезінде хабарламалар шығаратын қарапайым менеджер:

from contextlib import contextmanager

@contextmanager
def my_manager():
    print("Контекстке кірді")
    try:
        yield  # with ішіндегі код орындалады
    finally:
        print("Контексттен шықты")

Қолдану:

with my_manager():
    print("with блогында")

Шығу нәтижесі:

Контекстке кірді
with блогында
Контексттен шықты

Осылайша, yield кодты екі бөлікке бөледі: yield-ке дейін — инициализация, одан кейін — тазалау коды. Бұл класс жазбай-ақ контекст менеджерлерін жасауға ыңғайлы әдіс.