与about python __doc__ docstring完全相关。 如果我不使用functools并使用How to print Docstring of python function from inside the function itself?中提到的包装器,是否有办法打印文档字符串。
def passmein(func):
def wrapper(*args, **kwargs):
return func(func, *args, **kwargs)
return wrapper
@passmein
def testfunc(me):
"""This is a test function"""
#print me.__doc__
if __name__ == '__main__':
print testfunc.__doc__
这将返回无。
答案 0 :(得分:3)
我不确定您为什么不想使用functools.wraps
,但您可以自己将文档字符串添加到wrapper
:
def passmein(func):
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
wrapper.__doc__ = func.__doc__
return wrapper
@passmein
def testfunc(me):
"""This is a test function"""
if __name__ == '__main__':
print testfunc.__doc__