下面这段代码中的hello()
函数使用装饰器,直接调用hello
时,会用装饰器中的print_time
的wrapper
函数覆盖掉原有的函数,因此实现的功能就是先执行函数,然后打印函数执行的时间
import time
def print_time(func):
def wrapper(*args, **kw):
start = time.time()
func(*args, **kw)
end = time.time()
print(func.__name__, ':', str(end - start))
return wrapper
@print_time
def hello(a):
print('I am hello :', a)
if __name__ == '__main__':
hello(1234)
输出结果是:
I am hello : 1234
hello : 2.3126602172851562e-05