我想显示我的函数的docstring, 但如果我这样使用
@cost_time
def func():
"define ...."
blabla
print func.__doc__
它不会显示文档字符串,只是因为我使用了一些元编程技巧, 怎么解决这个问题?
答案 0 :(得分:12)
从cost_time
装饰器返回的包装函数必须包含docstring而不是func
。因此,请使用functools.wraps
正确设置__name__
和__doc__
:
from functools import wraps
def cost_time(fn):
@wraps(fn)
def wrapper():
return fn()
return wrapper
答案 1 :(得分:2)