在文档字符串中处理重复内容的好方法是什么?我有许多函数采用'标准'参数,必须在docstring中解释,但是只编写一次docstring的相关部分会很好,因为这将更容易维护和更新。我天真地尝试了以下内容:
arg_a = "a: a very common argument"
def test(a):
'''
Arguments:
%s
''' % arg_a
pass
但这不起作用,因为当我help(test)
时,我看不到文档字符串。有没有办法做到这一点?
答案 0 :(得分:5)
正如其他答案所说,您需要更改功能对象的__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
答案 1 :(得分:3)
__doc__
可在大多数用户定义的类型上分配:
arg_a = "a: a very common argument"
def test(a):
pass
test.__doc__ = '''
Arguments:
%s
''' % arg_a
答案 2 :(得分:2)
据我所知,没有明显的方法可以做到这一点(至少没有像Ignacio所暗示的那样明确地重新分配__doc__
)。
但我认为这将是一件可怕的事情。考虑一下:
如果我浏览您的代码并在文件的第300行读取此文档字符串,该怎么办? 你真的希望我去参加搜索吗?