Here something we need to remember, __init__ function exceute when decorator is declare and __call__ execute when function('doSomethingCopy') will call independently. We can also call function('doSomethingCopy') from anywhere of the decorator class('MyDecorator').
class MyDecorator(object): def __init__(self, f): self.doSomethingCopy=f print "This line will call on decoration" def __call__(self,p,q): # here we pass the function parameter print "This line will work when we call the function 'doSomething' " self.doSomethingCopy(p+1,q+1) @MyDecorator def doSomething(a,b): print "I am doing something" print "A ",a," B ",b doSomething(3,4)
Output:
This line will call on decoration This line will work when we call the function 'doSomething' I am doing something A 4 B 5
0 comments:
Post a Comment