【发布时间】:2010-10-05 15:36:16
【问题描述】:
我想显示我的函数的文档字符串, 但如果我这样使用
@cost_time
def func():
"define ...."
blabla
print func.__doc__
它不会显示文档字符串,只是因为我使用了一些棘手的元编程, 如何解决这个问题?
【问题讨论】:
我想显示我的函数的文档字符串, 但如果我这样使用
@cost_time
def func():
"define ...."
blabla
print func.__doc__
它不会显示文档字符串,只是因为我使用了一些棘手的元编程, 如何解决这个问题?
【问题讨论】:
从cost_time 装饰器返回的包装函数必须具有文档字符串而不是func。因此,使用正确设置__name__ 和__doc__ 的functools.wraps:
from functools import wraps
def cost_time(fn):
@wraps(fn)
def wrapper():
return fn()
return wrapper
【讨论】:
【讨论】: