python元编程--装饰器函数

来源:互联网 发布:詹姆斯职业生涯总数据 编辑:程序博客网 时间:2024/05/03 05:32

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

 

        

#coding=utf-8'''Created on 2016-3-9@author: kwsy'''import timefrom functools import wrapsdef 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@timefuncdef 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)

0 0
原创粉丝点击