Sobes.tech
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).