Decorators are very hard to understand at the beginning. There is an article about decorators, which helps me establishing a basic understanding about how decorators work in Python.
http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/
Here are what I get from the article:
- Arguments passed into a function or variables defined in a function are all considered as locals() for that function.
- In nested function, the inner will try to find the variable in its own locals() first. If no matching variable found, it will try to find it in its enclosing scope(the outter)
- Decorators are just functions that take a function as an argument and returns another function. (For beginners like myself)
Update 1
Another very nice article https://pythonconquerstheuniverse.wordpress.com/2012/04/29/python-decorators/