import time
defcal_time(fn):print('我是外部函数,我被调用了!!!')print('fn = {}'.format(fn))definner():
start = time.time()
fn()
end = time.time()print('代码耗时', end - start)return inner
@cal_time# 第一件事,调用cal_time;第二件事把被装饰的函数传递给fndefdemo():
x =0for i inrange(1,100000000):
x += i
print(x)# 第三件事:当再次调用demo函数时,此时的demo已经不再是上面的demo了print('装饰后的demo ={} '.format(demo))
装饰器详解
import time
defcal_time(fn):print('我是外部函数,我被调用了!!!')print('fn = {}'.format(fn))definner(x,*args,**kwargs):# x = 100000000
start = time.time()
s = fn(x)# 100000000
end = time.time()# print('代码耗时', end - start)return s, end - start
return inner
@cal_time# 第一件事,调用cal_time;第二件事把被装饰的函数传递给fndefdemo(n):
x =0for i inrange(1, n):
x += i
return x
m = demo(100000000,'good', y='hello')print('m的值是{}'.format(m))