python 装饰器 之打印函数执行时间
在实际开发中 遇见很多需要排查函数执行时间定位性能瓶颈点
用装饰器获取函数执行的时间还是比较方便的
import inspect import time def timethis(func): def wrapper(*args, **kwargs): start = time.time() func(*args, **kwargs) end = time.time() print(inspect.getfile(func), func.__name__, end - start) return wrapper
装饰器的执行情况
@timethis
def test1(a):
print("test1开始")
print(a)
time.sleep(1)
print("test1结束")
def test2(a):
print("test2开始")
print(a)
time.sleep(1)
print("test3结束")
if __name__ == '__main__':
# 有装饰器的情况下执行
test1(10)
# 下面执行情况等效于装饰器的执行
timethis(test2)(10)