什么是好办法来应对文档字符串重复的内容?我有拿“标准”的论点,其中有在文档字符串来解释许多功能,但它会是不错的文档字符串中的有关部分只写一次,因为这将是更容易维护和更新。我天真试过如下:

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条线的文件的阅读方法文档字符串是什么? 你真的要我去的搜索的对自变量?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top