📚 Kontextmanager & with-Statement in Python#
🧠 Was ist ein Kontextmanager?#
Ein Kontextmanager verwaltet Ressourcen, z. B. Dateien oder Verbindungen. Er sorgt dafür, dass automatisch aufgeräumt wird – egal, ob ein Fehler auftritt oder nicht.
➡️ In Python wird ein Kontextmanager mit with verwendet.
🔧 Beispiel: Datei öffnen mit with#
with open("daten.txt", "r") as f:
inhalt = f.read()
print(inhalt)
Das ist das gleiche wie:
f = open("daten.txt", "r")
try:
inhalt = f.read()
finally:
f.close() # ❗ wichtig, aber leicht zu vergessen!
✅ with kümmert sich um das Schließen der Datei automatisch
🚀 Eigener Kontextmanager#
Eigene Kontextmanager können mit der __enter__()
und __exit__()
Methode implementiert werden.
class EinfacherLogger:
def __enter__(self):
print("🔓 Start des Blocks")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("🔒 Ende des Blocks")
# Anwendung:
with EinfacherLogger():
print("→ Hier passiert etwas")
➡️ Ausgabe:
🔓 Start des Blocks
→ Hier passiert etwas
🔒 Ende des Blocks