Sobes.tech
Junior — Middle

Kokia Python kalbos raktinė žodis naudojama kontekstinio valdytojo apibrėžimui?

sobes.tech AI

Atsakymas iš AI

Python'e, norint apibrėžti kontekstų valdytoją, naudojama raktinė frazė with jo naudojimo metu, o norint sukurti savo kontekstų valdytoją, dažniausiai taikomi metodai __enter__ ir __exit__ klasėje.

Tačiau, jei kalbame apie funkcijos kaip kontekstų valdytojo deklaraciją, naudojamas dekoratorius @contextmanager iš modulio contextlib.

Pavyzdys, kaip sukurti kontekstų valdytoją naudojant klasę:

class MyContextManager:
    def __enter__(self):
        print('Įėjimas į kontekstą')
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        print('Išeiti iš konteksto')

with MyContextManager():
    print('Viduje konteksto')

Pavyzdys naudojant @contextmanager:

from contextlib import contextmanager

@contextmanager
def my_context():
    print('Įėjimas')
    yield
    print('Išeitis')

with my_context():
    print('Viduje')

Todėl, pagrindinės žodžiai, naudojami dirbant su kontekstų valdytojais, yra with (naudojimui) ir metodai __enter__ bei __exit__ (apibrėžimui).