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).