Co to jest kontekst menedżera (Context Manager) w Pythonie i jak go zaimplementować?
💡 Wskazówka do nauki: Zanim odsłonisz odpowiedź poniżej, spróbuj samodzielnie sformułować definicję lub napisać krótki przykład kodu w głowie (albo w naszym edytorze online).
Pokaż odpowiedź i przykład kodu
Opis i wyjaśnienie:
Kontekst menedżer w Pythonie to obiekt zaprojektowany do użytku w instrukcji with, który ułatwia zarządzanie zasobami, takimi jak pliki lub połączenia sieciowe. Kontekst menedżery zapewniają, że zasoby są poprawnie zwalniane po zakończeniu bloku with. Można je zaimplementować przez zdefiniowanie metod __enter__ i __exit__ w klasie lub przez użycie dekoratora contextlib.contextmanager w funkcji.
Przykład w Pythonie:
class MyCtx:
def __enter__(self): print("start"); return self
def __exit__(self, *exc): print("stop")
with MyCtx():
print("w środku")