Junior — Middle
Welk trefwoord in Python wordt gebruikt om een contextmanager te definiëren?
sobes.tech AI
Antwoord van AI
In Python wordt een contextmanager gedefinieerd met het sleutelwoord with tijdens het gebruik ervan, en om een eigen contextmanager te maken worden meestal de methoden __enter__ en __exit__ in een klasse gebruikt.
Als het gaat om de declaratie van een contextmanager-functie, wordt de decorator @contextmanager uit de module contextlib gebruikt.
Voorbeeld van het maken van een contextmanager met een klasse:
class MyContextManager:
def __enter__(self):
print('Ingang in de context')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('Uitgang uit de context')
with MyContextManager():
print('Binnen de context')
Voorbeeld met @contextmanager:
from contextlib import contextmanager
@contextmanager
def my_context():
print('Ingang')
yield
print('Uitgang')
with my_context():
print('Binnen')
Dus, de sleutelwoorden voor werken met contextmanagers zijn with (om te gebruiken) en de methoden __enter__ en __exit__ (om te definiëren).