如何使用包装器在函数外部打印docstring?

2024-09-30 22:24:15 发布

您现在位置:Python中文网/ 问答频道 /正文

about python __doc__ docstring相当相关。 如果我不使用functools并使用How to print Docstring of python function from inside the function itself?中提到的包装器,有没有办法打印docstring。在

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__

这将返回无。在


Tags: docreturndefargsfunctionwrapperkwargsabout
1条回答
网友
1楼 · 发布于 2024-09-30 22:24:15

我不知道您为什么不想使用functools.wraps,但您可以自己将doc字符串添加到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__

相关问题 更多 >