文档字符串中的重复内容

ast*_*rog 4 python docstring

处理文档字符串中重复内容的好方法是什么?我有许多函数采用'标准'参数,必须在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)做时,我看不到文档字符串.有没有办法做到这一点?

Ign*_*ams 5

__doc__可在大多数用户定义类型上赋值:

arg_a = "a: a very common argument"

def test(a):
    pass

test.__doc__ = '''
    Arguments:
    %s
    ''' % arg_a
Run Code Online (Sandbox Code Playgroud)


int*_*jay 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
Run Code Online (Sandbox Code Playgroud)