我有一个带有许多参数和详细帮助消息的函数,例如:
def worker_function(arg1, arg2, arg3):
""" desired help message:
arg1 - blah
arg2 - foo
arg3 - bar
"""
print arg1, arg2, arg3
我还有一个包装函数,它会做一些计算,然后调用我的worker_function,将所有参数按原样传递给它。
def wrapper_function(**args):
""" this function calls worker_function """
### do something here ...
worker_function(**args)
我希望包装函数的帮助消息(由 python 内置的 help() 函数显示)具有来自工作函数的参数列表和帮助消息。
我能得到的最接近的解决方案是:
wrapper_function.__doc__ += "\n\n" + worker_function.__doc__
这导致:
>>? help(wrapper_function)
Help on function wrapper_function in module __main__:
wrapper_function(**args)
this function calls worker function
desired help message:
arg1 - blah
arg2 - foo
arg3 - bar
但是这个描述缺少必要的部分——参数列表,即:
worker_function(arg1, arg2, arg3)
(在现实生活中的函数中,参数列表很长,带有默认值,我希望自动显示)。
有没有办法将参数列表或 worker_function 添加到 wrapper_function 的帮助消息中?