题
什么是好办法来应对文档字符串重复的内容?我有拿“标准”的论点,其中有在文档字符串来解释许多功能,但它会是不错的文档字符串中的有关部分只写一次,因为这将是更容易维护和更新。我天真试过如下:
arg_a = "a: a very common argument"
def test(a):
'''
Arguments:
%s
''' % arg_a
pass
但是,这是不行的,因为当我做help(test)
我没有看到文档字符串。有没有做到这一点的好办法?
解决方案
作为其他的答案说,则需要改变功能对象的__doc__
构件。一个很好的方法,这样做是使用将执行对文档字符串的格式化装饰:
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
其他提示
__doc__
是大多数用户定义的类型可分配的:
arg_a = "a: a very common argument"
def test(a):
pass
test.__doc__ = '''
Arguments:
%s
''' % arg_a
有是据我所知,这样做(至少在没有明确地重新分配__doc__
作为伊格纳西奥建议)没有明显的方式。
但我认为这是做一件可怕的事情。考虑这样的:
如果我通过您的代码导航和300条线的文件的阅读方法文档字符串是什么? 你真的要我去的搜索的对自变量?
不隶属于 StackOverflow