标签:
#!/usr/bin/env python #--*-- coding:utf-8 --*-- __author__ = ‘Kevin‘ def deco(func): def in_deco(xx,yy): print (‘in deco‘) func(xx,yy) print (‘call deco‘) return in_deco #当Python解释器看到@deco的时候,会调用deco函数 #传入参数bar,即deco(bar),然后返回一个函数对象in_deco #bar = in_deco #bar() in_deco() bar() #实质也是对闭包的使用 @deco def bar(x,y): print(‘in bar‘,x+y) print (type(bar)) bar(1,2)
#!/usr/bin/env python
#--*-- coding:utf-8 --*--
__author__ = ‘Kevin‘
def dec(func):
print ‘call dec!‘
def in_dec(*arg):
print (‘in dec arg=‘,arg)
if len(arg) == 0:
return 0
for val in arg:
if not isinstance(val,int):
return 0
return func(*arg)
print (‘return in_dec‘)
return in_dec
#当Python解释器看到@dec的时候,就会将
#my_sum作为参数传入dec中
#被装饰的函数my_sum指向新的函数in_dec
#装饰器的实质 就是对我们闭包的使用
@dec
def my_sum(*arg):#my_sum = in_dec
print(‘in my_sum‘)
return sum(arg)
#my_sum = dec(my_sum)
print (my_sum(1,2,3,4,5))
def my_average(*arg):
return sum(arg)/len(arg)
标签:
原文地址:http://www.cnblogs.com/magicpower/p/5124065.html