首先,我强烈建议使用探查器或至少使用timeit。
但是,如果您想严格地学习自己的计时方法,可以在这里开始使用装饰器。
Python 2:
def timing(f): def wrap(*args): time1 = time.time() ret = f(*args) time2 = time.time() print '%s function took %0.3f ms' % (f.func_name, (time2-time1)*1000.0) return ret return wrap
用法非常简单,只需使用@timing装饰器即可:
@timingdef do_work(): #pre
Python 3:
def timing(f): def wrap(*args, **kwargs): time1 = time.time() ret = f(*args, **kwargs) time2 = time.time() print('{:s} function took {:.3f} ms'.format(f.__name__, (time2-time1)*1000.0)) return ret return wrap注意我正在调用
f.func_name以字符串形式获取函数名称(在Python 2中)或
f.__name__在Python 3中。



