- #encoding: UTF - 8 '''
- Created on 2016��12��7��
- @filename: test.py
- @author: YYH
- '''import time from functools import wraps
- class TimeRecorder: def __init__(self, name = "function") : print(name + "()" + " Start...") print(name + "()" + " Running...") self.name = name self.startTime = time.time() def __del__(self) : print("{0}() Ended,Cost Time:{1} s".format(self.name, time.time() - self.startTime))#使用装饰者测试函数运行时间,这里看起来像是"钩子"的方法,实际并不是的,借助于Python的装饰者,这个方法将发挥巨大的作用。def fn_timer(function) : @wraps(function)#解决打印函数名的bug def function_timer( * args, **kwargs) : tR = TimeRecorder(function.__name__)#增加变量,由使得该对象的生命器存在整个函数result = function( * args, **kwargs) return result
- return function_timer
来源: http://www.cnblogs.com/guiguzhixing/p/6142919.html