A design pattern in programming that allows behavior to be added to individual objects, either statically or dynamically, without affecting the behavior of other objects from the same class.
In Python, the decorator adds functionality to the function without modifying its structure.