Dekoratoren in Python- Wiederverwendbaren Code elegant schreiben
Dekoratoren in Python: Wiederverwendbaren Code elegant schreiben
Ein praxisnaher Leitfaden zur Erstellung und Anwendung von Funktionen, die andere Funktionen verändern
Inhaltsverzeichnis
Kapitel 1: Was sind Dekoratoren?
- Einführung: Funktionen als Objekte in Python
- Warum Dekoratoren nützlich sind
- Typische Anwendungsfälle: Logging, Validierung, Timing
- Erste Beispiele zum Warmwerden
Kapitel 2: Funktionen in Python verstehen
- Funktionen als Parameter übergeben
- Rückgabe von Funktionen aus Funktionen
- Closures und Scopes
- Mini-Projekt: Funktion als Rechenwerkzeug
Kapitel 3: Der erste eigene Dekorator
- Aufbau eines einfachen Dekorators
- Mit @dekoratorname arbeiten
- Mini-Projekt: Einfache Ausgabezeit-Messung
Kapitel 4: Mit *args und **kwargs flexibel bleiben
- Dekoratoren für Funktionen mit beliebigen Parametern
- Rückgabewerte durchreichen
- Mini-Projekt: Logging-Dekorator für beliebige Funktionen
Kapitel 5: Verschachtelte und kombinierte Dekoratoren
- Mehrere Dekoratoren auf einer Funktion
- Reihenfolge beachten
- Mini-Projekt: Validierung + Logging kombinieren
Kapitel 6: Dekoratoren mit Parametern
- Warum ein Dekorator auch konfigurierbar sein kann
- Aufbau eines parametrisierten Dekorators
- Mini-Projekt: Debug-Dekorator mit ein-/ausschaltbarer Anzeige
Kapitel 7: Klassen und Methoden dekorieren
- Methoden innerhalb von Klassen dekorieren
- @staticmethod, @classmethod, @property
- Eigene Klassenmethoden-Dekoratoren
- Mini-Projekt: Zugriffskontrolle in einer Benutzerklasse
Kapitel 8: Dekoratoren aus der Standardbibliothek
- @property, @staticmethod, @classmethod im Detail
- functools.wraps für Metadaten
- lru_cache, total_ordering, dataclass als Spezialfälle
- Mini-Projekt: Funktionscache mit lru_cache
Kapitel 9: Best Practices für sauberen Dekorator-Code
- Klarer Funktionsumfang
- Dokumentation und Lesbarkeit
- Debuggen und Logging mit dekorierten Funktionen
- Anti-Pattern: zu komplexe, „magische“ Dekoratoren vermeiden
Kapitel 10: Dekoratoren in realen Projekten
- Logging in Webanwendungen
- Zugriffsschutz (z. B. Admin-only Funktionen)
- Wiederverwendung über mehrere Module hinweg
- Mini-Projekt: REST-API-Validierung mit Dekoratorstruktur
Anhang A: Syntaxübersicht für Dekoratorvarianten
- Funktions-, Methoden-, parametrische und kombinierte Dekoratoren
Anhang B: Nützliche Tools und Module
- functools, inspect, time, logging, wrapt (optional)
- Kurze Modulübersicht mit Anwendung
Anhang C: Übungsaufgaben mit Lösungen
- Eigene Logging- und Timing-Dekoratoren schreiben
- Dekorator mit Parameter konfigurieren
- Mehrere Dekoratoren kombinieren
- Lösungen mit Kommentaren und Erklärungen