Ein Dekorateur in Python ist ein spezielles Konstrukt, das es ermöglicht, den Code einer Funktion oder Klasse zu modifizieren, ohne dass der ursprüngliche Code geändert werden muss. Dekorateure sind in Python höherer Ordnung Funktionen, die andere Funktionen als Argumente akzeptieren und neue Funktionen zurückgeben.
Sie ermöglichen die Anwendung sogenannter Cross-cutting Concerns (übergreifende Anliegen), wie Logging, Caching, Kontextverwaltung und andere Aspekte des Programms, die nicht direkt mit der Hauptfunktionalität der Funktion oder Klasse zusammenhängen.
Ein Dekorateur wird in Python durch ein @-Zeichen gefolgt von dem Namen der Dekoratorfunktion gekennzeichnet. Die zu dekorierende Funktion oder Methode wird unmittelbar darunter definiert.