10.初探python之装饰器

import time
#装饰器之闭包
def outer():
x = 10
def inner():#inner是内部函数
print(x)
return inner
outer()()
#闭包=内部函数+函数创建的外部环境
#闭包函数的条件:1.为内部函数 2.对外部只作用于的变量进行引用

#装饰器:对已有函数增加功能

#装饰器,增加计算功能函数运行时间
def running_time(f):
def inner():
start = time.time()
f()
end = time.time()
print('spend %s'%(end-start))
return inner
#原功能函数
@running_time #@running_time==function = running_time(function)
def function():
print('running function_1...')
time.sleep(2)
function()

#功能函数加参数
def add_1(a):
def inner(*args,**kwargs):
a(*args,**kwargs)
print()
return inner
@add_1
def add(*args,**kwargs):
sum = 0
for i in args:
sum += i
print(sum)
add(1,2,3,4,5,6,7)




posted @ 2018-09-06 16:21  zhoupeng_L  阅读(186)  评论(0)    收藏  举报