有没有办法在装饰函数中设置所有属性,就像在原始函数中一样?
例如,如果我使用此代码:
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 即可。有没有通用的方法来处理这个问题?