一个用于统计函数调用消耗时间的装饰器
2014-12-30 21:31
120 查看
装饰器前面提过了,采用python的闭包特性实现:
我们尝试以下的代码:
代码仍然可以正常工作,因为a.test()仅仅就是给test添加了一个额外的参数a而已。
from time import time from time import sleep def count_time(): def tmp(func): def wrapped(*args, **kargs): begin_time = time() result = func(*args, **kargs) end_time = time() cost_time = end_time - begin_time print '%s called cost time : %s' %(func.__name__, cost_time) return result return wrapped return tmp @count_time() def test(): sleep(0.5) if __name__ == '__main__': test()
我们尝试以下的代码:
class Test: @count_time() def test(self): print 'haha' if __name__ == '__main__': # test() a = Test() a.test()
代码仍然可以正常工作,因为a.test()仅仅就是给test添加了一个额外的参数a而已。
相关文章推荐
- 一个用于统计函数调用消耗时间的装饰器
- Ruby调用wsdl,用了我一个下午的时间才尝试出来!
- 实现一个用于显示当前时间的Google Android 窗口小部件(AppWidget) 推荐
- unity项目异步加载来避免加载一个项目所消耗时间过长
- js,jquery的一个简单按时间循环调用方法
- 一个项目消耗时间的一些因素
- TimeSheet:一个用于时间规划的jQuery插件
- Java处理日期时间常用方法(可用于公用方法以供调用)
- ASP.NET后台手动调用POST提交并获取返回值,用于短信平台接口//这是一个短信平台的后台提交功能
- Lea指令计算地址(用于四则混合运算),附上一个函数调用例子及其反汇编代码,很清楚
- 实现一个用于显示当前时间的Google Android 窗口小部件(AppWidget)
- 子函数调用方式实现一个发光二极管的闪烁,闪烁时间为500ms
- 为什么系统调用消耗更多时间?
- 一个 C# 获取高精度时间类(调用API QueryP*)
- 一个用于定时刷新文件访问时间戳的Shell脚本
- 教你如何使用VFW调用视频压缩解压缩!花了我一个下午的时间[非常详细]
- 现一个用于显示当前时间的Google Android 窗口小部件(AppWidget)
- _nop_()消耗时间为一个指令周期
- init返回0说明初始化失败,其调用时间仅次与DllEntry,成多于一个的驱动程序实例时仅调用一次DllEntry,而xxx_Init会被调用多次,CreateFile与XXX_Open对应
- python 写一个计算执行时间的装饰器