您的位置:首页 > 编程语言 > Python开发

python元编程--装饰器函数

2016-03-09 21:29 316 查看
装饰器函数可以对一个函数做包装,使其拥有额外的能力,比如记录一个函数的执行时间。实际工作中不可能在每一个函数中去计算执行时间,因为这样的功能也许仅仅是在测试的时候需要。编写一个专门用于计算函数执行时间的装饰器函数,在需要的时候使用。

#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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: