处理文档字符串中重复内容的好方法是什么?我有许多函数采用'标准'参数,必须在docstring中解释,但是只编写一次docstring的相关部分会很好,因为这将更容易维护和更新.我天真地尝试了以下内容:
arg_a = "a: a very common argument"
def test(a):
'''
Arguments:
%s
''' % arg_a
pass
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为当我这样help(test)做时,我看不到文档字符串.有没有办法做到这一点?
__doc__可在大多数用户定义类型上赋值:
arg_a = "a: a very common argument"
def test(a):
pass
test.__doc__ = '''
Arguments:
%s
''' % arg_a
Run Code Online (Sandbox Code Playgroud)
正如其他答案所说,您需要更改__doc__函数对象的成员.执行此操作的一种好方法是使用将在docstring上执行格式化的装饰器:
def fixdocstring(func):
func.__doc__ = func.__doc__.replace('<arg_a>', 'a: a very common argument')
#(This is just an example, other string formatting methods can be used as well.)
return func
@fixdocstring
def test(a):
'''
Arguments:
<arg_a>
''''
pass
Run Code Online (Sandbox Code Playgroud)