装饰函数中的函数属性

时间:2018-02-22 13:07:02

标签: python attributes python-decorators

有没有办法在装饰函数中设置所有属性,就像在原始函数中一样?

例如,如果我使用此代码:

def timeit(f):
    import time
    def new_f(n):
        start = time.time()
        res = f(n)
        end = time.time()
        tt = end-start
        print tt
        return res
    return new_f

@timeit
def fun(n=0):
    ''' docstring '''
    res = 0
    for _ in xrange(n):
        res = res + 1
    return res

然后功能 fun 实际上已经失去了所有属性,例如 fun.func_defaults fun.func_dict fun.func_doc 即可。有没有通用的方法来处理这个问题?

0 个答案:

没有答案