Sobes.tech
Junior — Middle

Melyik kulcsszó a Pythonban a kontextuskezelő meghatározására?

sobes.tech MI

Válasz az MI-től

Pythonban a kontextuskezelő meghatározásához a with kulcsszót használják a használat során, és saját kontextuskezelő létrehozásához általában a __enter__ és __exit__ metódusokat alkalmazzák egy osztályban.

Azonban, ha egy funkcióként definiált kontextuskezelőről van szó, akkor a @contextmanager dekorátort használják a contextlib modulból.

Példa egy osztály segítségével készített kontextuskezelőre:

class MyContextManager:
    def __enter__(self):
        print('Belépés a kontextusba')
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        print('Kilépés a kontextusból')

with MyContextManager():
    print('A kontextus belsejében')

Példa @contextmanager használatával:

from contextlib import contextmanager

@contextmanager
def my_context():
    print('Bejárat')
    yield
    print('Kijárat')

with my_context():
    print('Belső')

Ezért a kulcsszavak a kontextuskezelőkkel való munkához a with (használatra) és az __enter__ valamint __exit__ metódusok (definiálásra).