Python a-z

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

Poziom: średni Fiszka #120 · Python

Co to jest "context manager" w Pythonie i jak utworzyć własny?

💡 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:

"Context manager" zarządza zasobami, np. plikami, połączeniami. Można utworzyć własny definiując klasę z metodami `__enter__` i `__exit__` lub używając dekoratora `contextlib.contextmanager`.

Przykład w Pythonie:

class MyCtx:
    def __enter__(self): print("start"); return self
    def __exit__(self, *exc): print("stop")
with MyCtx():
    print("w środku")