装饰器

本质:函数

原则:

1.不能修改被装饰的函数的源代码

2.不能修改被装饰的函数的调用方式

高阶函数+嵌套函数--->装饰器

 

import time

def timer(func):
def warpper(*args,**kwargs):
        start_time=time.time()
func(
*args,**kwargs)
        stop_time=time.time()
print('the func run time is %s' %(stop_time-start_time))
return warpper

@timer #test1=timer(test1)
def test1():
time.sleep(3)
print('in the test1')
@timer
def test2(name):
time.sleep(1)
print('test2:',name)

test1()
test2('abc')
 

posted @ 2018-01-24 20:55  cecelia  阅读(119)  评论(0编辑  收藏  举报