Notes on Python Decorators
The GoF grouped some well-known design patterns under 3 categories. Under the structural patterns you can find The Decorator Pattern. A design pattern that allows us to change, or add, objects functionality at run-time, in a statically typed object-oriented programming languages.
Naming aside, Python Decorators are a different thing. Even though we get some similar things, and some times we might feel that they are the same, I think that not many people stress this enough: Python Decorators are NOT an implementation of the decorator pattern. Python decorators allow us to inject new behavior in an already existent functionality, at definition time.