Ein Kontextmanager in Python ist eine Klasse, die spezielle Methoden enthält, die beim Eintritt und Verlassen eines Kontextes (in der Regel markiert durch einen “with” -Block) ausgeführt werden. Sie werden häufig verwendet, um sicherzustellen, dass Aufräumarbeiten oder andere notwendige Schritte stets ausgeführt werden, unabhängig davon, ob der Code im Inneren des Blocks fehlgeschlagen oder erfolgreich durchgelaufen ist.
Die speziellen Methoden sind “enter” und “exit”. Die “enter”-Methode wird am Anfang des “with”-Blocks ausgeführt, und die “exit”-Methode wird am Ende ausgeführt, auch wenn der Block durch eine Ausnahme verlassen wird.
Ein gängiges Beispiel für einen Kontextmanager ist die Dateiobjekt, das von der eingebauten “open”-Funktion zurückgegeben wird. Sie verwenden den Kontextmanager, um sicher zu stellen, dass die Datei ordnungsgemäß geschlossen wird, wenn Sie mit ihr fertig sind, selbst wenn während des Lesens oder Schreibens in die Datei ein Fehler auftritt.
Beispiel:
```
with open(‘file.txt’, ‘r’) as f:
contents = f.read()
```
In diesem Fall ist “f” das Dateiobjekt und dient als Kontextmanager. Es stellt sicher, dass “f.close()” aufgerufen wird, wenn der “with”-Block verlassen wird.