Python a-z

Twoje centrum interaktywnej nauki Pythona: fiszki, przykłady kodu i edytor w przeglądarce.

Poziom: średni Fiszka #141 · Python

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")