Einkaufswagen
Loading
Nur noch -1 verfügbar

Kontextmanager in Python und die 'with'-Anweisung im Detail

Aktionspreis
€10.99 (25 % Rabatt)
€8.24
Zum Einkaufswagen hinzugefügt

Kontextmanager in Python und die 'with'-Anweisung im Detail

Ein praktischer Leitfaden für sauberes Ressourcenmanagement, bessere Lesbarkeit und robusteren Code


Inhaltsverzeichnis


Kapitel 1: Was ist ein Kontextmanager?


  • Problemstellung: Ressourcen sicher verwalten
  • Was tut with? Warum ist das nützlich?
  • Vorteile gegenüber manuellem Öffnen/Schließen
  • Erste Beispiele mit Dateien

Kapitel 2: Die with-Anweisung verstehen


  • Grundsyntax: with <Kontextmanager> as <variable>:
  • Automatisches Aufräumen nach dem Block
  • Das Prinzip: Betreten und Verlassen eines Kontexts
  • Mini-Projekt: Datei öffnen, lesen und sicher schließen

Kapitel 3: Eingebaute Kontextmanager in Python


  • Arbeiten mit Dateien (open)
  • Sperren mit threading.Lock
  • Wechseln von Verzeichnissen mit contextlib.chdir()
  • Mini-Projekt: Sicheres Schreiben in Logdatei mit Lock

Kapitel 4: Eigene Kontextmanager mit Klassen erstellen


  • Implementieren mit __enter__() und __exit__()
  • Fehlerbehandlung im Kontext
  • Mini-Projekt: Zeitmessung mit eigenem Kontextmanager

Kapitel 5: Kontextmanager mit Generatoren und contextlib


  • Einführung in contextlib.contextmanager
  • Schreiben einfacher Kontexte mit yield
  • Vergleich: Klasse vs. Generator
  • Mini-Projekt: Temporärer Datenordner mit Aufräumfunktion

Kapitel 6: Verschachtelte und kombinierte Kontexte


  • Mehrere with-Anweisungen nacheinander oder gleichzeitig
  • Fehlerbehandlung bei verschachtelten Kontexten
  • Mini-Projekt: Datei lesen und Ergebnis protokollieren

Kapitel 7: Fehlerbehandlung im Kontextmanager


  • Exceptions im with-Block erkennen und weitergeben
  • Protokollierung und Fehlerunterdrückung
  • __exit__() gezielt steuern
  • Mini-Projekt: Sicherer Datenbankzugriff mit Fehlerprotokollierung

Kapitel 8: Anwendung in realen Projekten


  • Netzwerkverbindungen, Datenbankverbindungen, Ressourcen
  • Kontexte für Tests und Mocks
  • Kombinierbar mit Logging, Timing, Tracing
  • Mini-Projekt: Kontextmanager für API-Zugriffe

Kapitel 9: Best Practices für Kontextmanager


  • Wann contextmanager, wann eigene Klasse?
  • Wiederverwendbarkeit, Lesbarkeit und Testbarkeit
  • Kombination mit anderen Sprachmitteln (z. B. with + async)
  • Tipps für sauberen, idiomatischen Code

Kapitel 10: Ausblick – Asynchrone Kontextmanager (async with)


  • Warum und wann async with nützlich ist
  • Eigene asynchrone Kontextmanager definieren
  • Mini-Beispiel: Asynchrones Öffnen und Verwalten von Ressourcen
  • Unterschiede zu synchronen Kontexten

Anhang A: Übersicht wichtiger Standard-Kontextmanager


  • open(), decimal.localcontext(), threading.Lock(), contextlib-Utilities
  • Beschreibung und typische Einsatzgebiete

Anhang B: Kontextmanager vs. Try-Finally


  • Vergleich beider Ansätze
  • Wann welches Muster sinnvoll ist

Anhang C: Übungsaufgaben mit Lösungen


  • Einfacher Kontextmanager schreiben
  • Fehlerbehandlung im Kontext simulieren
  • Ressourcen sauber verwalten in Beispielcode
  • Lösungen mit Kommentaren und Erläuterungen


Sie erhalten die folgenden Dateien:
  • PDF (1MB)
  • EPUB (100KB)