While I like to think of myself as a reasonably competent Python coder, one aspect of the language I've never been able to grok is decorators.
I know what they are (superficially), I've read tutorials, examples, questions on Stack Overflow, and I understand the syntax, can write my own, occasionally use @classmethod and @staticmethod, but it never occurs to me to use a decorator to solve a problem in my own Python code. I never encounter a problem where I think, "Hmm...this looks like a job for a decorator!"
So, I'm wondering if you guys might offer some examples of where you've used decorators in your own programs, and hopefully I'll have an "A-ha!" moment and get them.
Edit - lots of good answers guys, thanks! I accepted David Makcenzie's because Bruce Eckel's article kind of clicked for me.