例一: 实现多加100
def fun1(x):
def fun2(y):
return x(y)+100
return fun2 #装饰器
def ff(y):
return y*y ff(4)=16
@fun1 此时fun1相当于执行了 ff= fun1(ff) #x=ff
def ff(y):
return y*y ff(4)=116
例二: 实现过滤非整数型的参数,使能够实现多数相加
def filterarg(func):
def fit(*arg):
if len(arg) ==0:
return 0
for i in arg:
if not isinstance(i,int):
return 0
return func(*arg)
return fit #装饰器
@filterarg
def sums(*arg):
return sum(arg) *的作用是将多个参数整合成列表,是指能够让sum(arg)运行。注意,sum(arg)中只能传一个参数,这个参数可以是列表,sum([1,2,3])=6. sum(1,2,3)报错
上面两个实例仅仅供理解学习用,实际功能不大。