python_61_装饰器4

import time
def timer(func):#timer(test1)  func=test1
    def deco():
        start_time=time.time()
        func()#run test1
        stop_time=time.time()
        print('the func time is %s'%(stop_time-start_time))
    return deco

@timer#@timmer与test1=timer(test1)等价
#原代码
def test1():
    time.sleep(1)
    print('in the test1')

@timer#@timmer与test2=timer(test2)等价
# 原代码
def test2():
    time.sleep(2)
    print('in the test2')

print(timer(test1))#打印的是timer(test1)的返回值
'''
test1=timer(test1)#timer(test1())是错误的,加括号将test1的返回值传递给timer,应该将test1的内存地址传递给timer
'''
test1()
'''
test2=timer(test2)
'''
test2()

  

原文地址:https://www.cnblogs.com/tianqizhi/p/8372402.html