装饰器
本质:函数
原则:
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')