python-写一个装饰器

一直都知道python有这样一个功能,但是没有遇到过,今天写一个程序,分步对图像进行处理,我想观察每个处理的时长看哪些操作比较耗时,我本来想这样写:

import time
st = time.time()
func(*args, **kw)
ptint(time.time()-st)

但是这样要在每步处理函数前后都添加代码,麻烦不说代码不好管理,这时候想到了装饰器

def runTime(func):  
     def wrapper(*args, **kw):  
         st = time.time()  
         ret = func(*args, **kw) 
         print('[%s] run time is %.2f' % (func.__name__ ,time.time() - st))
         return ret
     return wrapper

定义以上装饰器,在每个想要计时的的函数前面@runTime就可以了

@runTime
def func1():
	pass

@runTime
def func2():
	pass

你可能感兴趣的:(python)