Junior — Middle
Kura Python atslēgas vārds tiek izmantots konteksta pārvaldnieka definēšanai?
sobes.tech AI
Atbilde no AI
Pythonā konteksta pārvaldnieka definēšanai izmanto atslēgvārdu with tā lietošanas laikā, un, lai izveidotu savu konteksta pārvaldnieku, parasti tiek izmantotas metodes __enter__ un __exit__ klasē.
Tomēr, ja runa ir par funkcijas deklarēšanu kā konteksta pārvaldnieka, tiek izmantots dekorators @contextmanager no moduļa contextlib.
Piemērs, kā izveidot konteksta pārvaldnieku ar klasi:
class MyContextManager:
def __enter__(self):
print('Ieeja kontekstā')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('Iziešana no konteksta')
with MyContextManager():
print('Iekš konteksta')
Piemērs ar @contextmanager:
from contextlib import contextmanager
@contextmanager
def my_context():
print('Ieeja')
yield
print('Izieja')
with my_context():
print('Iekšā')
Tādēļ galvenās atslēgvārdi darbam ar konteksta pārvaldniekiem ir with (lietošanai) un metodes __enter__ un __exit__ (definēšanai).