# -*- coding: utf-8 -*-
#!/usr/bin/env python
def spamrun(fn):
def sayspam(*args):
print "spam,spam,spam "
fn(*args)
return
return sayspam
@spamrun
def useful(a,b):
print a**2+b**2
useful(3,4)
def myDeco(args):
print("Hello ,I'm Decorator!")
print("args:",args) #处理参数
def _myDeco(func):#处理函数
def __myDeco(*args,**kwargs): #处理函数的参数
print ("function name: %s " % (func.__name__) )
ret = func(*args,**kwargs)
return ret
return __myDeco
return _myDeco
@myDeco("my_name")
def run(a,b):
print("func run start:")
print("---------------")
print("run(%s,%s)" % (a,b))
print("---------------")
print("func run end")
run(1,2)
class myDecorator(object):
def __init__(self, fn):
print "inside myDecorator.__init__()" , fn.__name__
self.fn = fn
def __call__(self,*args):
self.fn(args)
print "inside myDecorator.__call__()" ,args[0],args[1],args[2]
@myDecorator
def aFunction(a=0,b=0,c=0):
print "inside aFunction()"
print "Finished decorating aFunction()"
aFunction(1,2,3)