python @

test_@.py

class myDecorator(object):
def __init__(self, f):
print "inside myDecorator.__init__()"
self.f = f

def __call__(self):
print "inside myDecorator.__call__()"
self.f()

@myDecorator
def aFunction():
print "inside aFunction()"

print "Finished decorating aFunction()"
aFunction()
print ' '

def entryExit(f):
def new_f():
print "Entering", f.__name__
f()
print "Exited", f.__name__
return new_f

@entryExit
def func1():
print "inside func1()"

func1()

执行结果

inside myDecorator.__init__()
Finished decorating aFunction()
inside myDecorator.__call__()
inside aFunction()


Entering func1
inside func1()
Exited func1

原文地址:https://www.cnblogs.com/banwhui/p/4877810.html