A function returning another function, usually applied as a function transformation using the @wrapper syntax. Common examples for decorators are classmethod() and staticmethod().
The decorator syntax is merely syntactic sugar, the following two function definitions are semantically equivalent:
The same concept exists for classes, but is less commonly used there. See the documentation for function definitions and class definitions for more about decorators.