Junior — Middle
Melyik kulcsszó a Pythonban a kontextuskezelő meghatározására?
sobes.tech MI
Válasz az MI-től
Pythonban a kontextuskezelő meghatározásához a with kulcsszót használják a használat során, és saját kontextuskezelő létrehozásához általában a __enter__ és __exit__ metódusokat alkalmazzák egy osztályban.
Azonban, ha egy funkcióként definiált kontextuskezelőről van szó, akkor a @contextmanager dekorátort használják a contextlib modulból.
Példa egy osztály segítségével készített kontextuskezelőre:
class MyContextManager:
def __enter__(self):
print('Belépés a kontextusba')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('Kilépés a kontextusból')
with MyContextManager():
print('A kontextus belsejében')
Példa @contextmanager használatával:
from contextlib import contextmanager
@contextmanager
def my_context():
print('Bejárat')
yield
print('Kijárat')
with my_context():
print('Belső')
Ezért a kulcsszavak a kontextuskezelőkkel való munkához a with (használatra) és az __enter__ valamint __exit__ metódusok (definiálásra).