python元编程--装饰器函数
2016-03-09 21:29
316 查看
装饰器函数可以对一个函数做包装,使其拥有额外的能力,比如记录一个函数的执行时间。实际工作中不可能在每一个函数中去计算执行时间,因为这样的功能也许仅仅是在测试的时候需要。编写一个专门用于计算函数执行时间的装饰器函数,在需要的时候使用。
timefunc 函数接受 test(n) 做为参数,在timefunc内部,调用了test函数,为了保证接受任意参数,使用了*args和**kwargs作为参数。
在实际使用中,还可以这样
#coding=utf-8 ''' Created on 2016-3-9 @author: kwsy ''' import time from functools import wraps def timefunc(func): @wraps(func) def wrapper(*args,**kwargs): start = time.time() result = func(*args,**kwargs) end = time.time() print func.__name__,end-start return result return wrapper @timefunc def test(n): time.sleep(n) if __name__ == '__main__': test(2)
timefunc 函数接受 test(n) 做为参数,在timefunc内部,调用了test函数,为了保证接受任意参数,使用了*args和**kwargs作为参数。
在实际使用中,还可以这样
def test(n): time.sleep(n) if __name__ == '__main__': func = timefunc(test) func(2)
相关文章推荐
- python3 报错集合
- Python安装coverage.py
- 探索 Python、机器学习和 NLTK 库 开发一个应用程序,使用 Python、NLTK 和机器学习对 RSS 提要进行分类
- Python学习:多继承和super()
- python字符串操作
- python 入门学习笔记之基本语法与基本数据类型
- python学习笔记-02
- Python之多线程学习
- Python socket 模块
- 002第一部分_[字典/列表解析/字符串操作/STR与BYTES的区别]
- Python socket编程
- NumPy的详细教程
- python学习笔记:python对象
- Python介绍
- python学习:机器学习下的pybrain和多线程编程
- Learning Python(14)--struct模块
- Python中的re模块(一)
- python 正则表达式
- Python Socket Scanner 笔记-企
- 像web一样使用python