装饰器之案例剖析1

def timer(func):#timer做的事情其实是定义了一个deco()函数,并且返回了deco的内存地址
def deco(*args,**kwargs):#deco()做的事情是test1(),并且给出计算时间
import time
start_time = time.time()
func(*args,**kwargs)
stop_time = time.time()
print("the func run time%s"%(stop_time-start_time))
return deco

import time
@timer
def test1():
time.sleep(3)
print("in the test1")
@timer
def test2(name):
print("name:",name)

#将test1传入timer
test1()#调用内存地址(),实际上调用的是deco()
test2("W")
posted @ 2019-02-15 17:19  CandyW  阅读(130)  评论(0编辑  收藏  举报