Decorators aren't always implemented using functions.
It's helpful to think of a decorator as a function that accepts a function and returns a function to replace our original function with:
This is a premium screencast available only to active Python Morsels subscribers.
Feel free to watch some of the free screencasts in the Decorators series.
Need to fill-in gaps in your Python skills? I send weekly emails designed to do just that.