Hello @kartik,
Python decorators add extra functionality to another function
An italics decorator could be like
def makeitalic(fn):
    def newFunc():
        return "<i>" + fn() + "</i>"
    return newFunc
Note that a function is defined inside a function. What it basically does is replace a function with the newly defined one. For example, I have this class
class foo:
    def bar(self):
        print "hi"
    def foobar(self):
        print "hi again"
Now say, I want both functions to print "---" after and before they are done. I could add a print "---" before and after each print statement. But because I don't like repeating myself, I will make a decorator
def addDashes(fn): # notice it takes a function as an argument
    def newFunction(self): # define a new function
        print "---"
        fn(self) # call the original function
        print "---"
    return newFunction
    # Return the newly defined function - it will "replace" the original
So now I can change my class to
class foo:
    @addDashes
    def bar(self):
        print "hi"
    @addDashes
    def foobar(self):
        print "hi again"
Hope this works!!