Junior — Middle
Milline Python'i võtmesõna kasutatakse kontekstihalduri määratlemiseks?
sobes.tech AI
Vastus AI-lt
Pythonis kasutatakse kontekstihalduri määratlemiseks võtmesõna with selle kasutamise ajal, ning oma kontekstihalduri loomisel rakendatakse tavaliselt klasse __enter__ ja __exit__ meetodeid.
Kuid, kui räägime funktsiooni deklaratsioonist kontekstihaldurina, kasutatakse @contextmanager dekoratsiooni contextlib moodulist.
Näide kontekstihalduri loomise kohta klassi abil:
class MyContextManager:
def __enter__(self):
print('Konteksti sisenemine')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('Kontekstist väljumine')
with MyContextManager():
print('Kontekstis')
Näide kasutades @contextmanager:
from contextlib import contextmanager
@contextmanager
def my_context():
print('Sisenemine')
yield
print('Väljumine')
with my_context():
print('Sisemine')
Seega, võtmesõnad kontekstihalduritega töötamiseks on with (kasutamiseks) ning meetodid __enter__ ja __exit__ (määratlemiseks).