Decorators are handy sugars for Python programmers to shorten things and provides more concise programming.
For instance you can use decorators for user authentication for your REST API servers. Assume that, you need to auth. the user for before each REST calls. Instead of appending the same procedure to each call function, it is better to define decorator and tagging it onto your call functions.
Let's see the small example below. I hope it is self-descriptive.
""" How to use Decorators: Decorators are functions called by annotations Annotations are the tags prefixed by @ """ ### Decorator functions ### def helloSpace(target_func): def new_func(): print "Hello Space!" target_func() return new_func def helloCosmos(target_func): def new_func(): print "Hello Cosmos!" target_func() return new_func @helloCosmos # annotation @helloSpace # annotation def hello(): print "Hello World!" ### Above code is equivalent to these lines # hello = helloSpace(hello) # hello = helloCosmos(hello) ### Let's Try hello()
When you use a git repository with submodules, you need to pull all of them at once to keep the unity. Following call does it for you.
git submodule foreach git pull origin master