Junior — Middle
Jakie słowo kluczowe w Pythonie służy do definiowania menedżera kontekstu?
sobes.tech AI
Odpowiedź od AI
W Pythonie, aby zdefiniować menedżera kontekstu, używa się słowa kluczowego with podczas jego użycia, a do tworzenia własnego menedżera kontekstu zazwyczaj stosuje się metody __enter__ i __exit__ w klasie.
Jednak, jeśli chodzi o deklarację funkcji będącej menedżerem kontekstu, używa się dekoratora @contextmanager z modułu contextlib.
Przykład tworzenia menedżera kontekstu za pomocą klasy:
class MyContextManager:
def __enter__(self):
print('Wchodzenie do kontekstu')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('Wyjście z kontekstu')
with MyContextManager():
print('Wewnątrz kontekstu')
Przykład z użyciem @contextmanager:
from contextlib import contextmanager
@contextmanager
def my_context():
print('Wejście')
yield
print('Wyjście')
with my_context():
print('Wewnątrz')
Zatem słowa kluczowe do pracy z menedżerami kontekstu to with (do użycia) oraz metody __enter__ i __exit__ (do definiowania).