Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使函数docstring根据python中的另一个函数自动更新?_Python_Auto Update_Docstring - Fatal编程技术网

如何使函数docstring根据python中的另一个函数自动更新?

如何使函数docstring根据python中的另一个函数自动更新?,python,auto-update,docstring,Python,Auto Update,Docstring,假设我有一些函数(比如B1、B2、B3等)调用相同的函数A, 我想在B1,B2,B3的docstring中加入一些解释函数A使用的参数的文本,这些已经在函数A的docstring中解释过了。但是我不想将A的docstring复制到B1,然后是B2,然后是B3,以后如果我更改函数A的docstring,那么我必须更改B1,B2,B3。。。同样,我想知道是否有某种方法可以将B1的部分docstring链接到A的部分,这样当A的docstring更新时,B1的相应部分也会更新。通过这种方式,用户可以直

假设我有一些函数(比如B1、B2、B3等)调用相同的函数A, 我想在B1,B2,B3的docstring中加入一些解释函数A使用的参数的文本,这些已经在函数A的docstring中解释过了。但是我不想将A的docstring复制到B1,然后是B2,然后是B3,以后如果我更改函数A的docstring,那么我必须更改B1,B2,B3。。。同样,我想知道是否有某种方法可以将B1的部分docstring链接到A的部分,这样当A的docstring更新时,B1的相应部分也会更新。通过这种方式,用户可以直接参考功能B1的docstring来获取帮助信息,而不必费心检查A的docstring(实际上A的参数都是kwargs)。下面是一个简单的例子:

def A():
    '''
    I am doctring for function A
    '''
    pass

def B1():
    '''
    I am doctring for function B1,

    followed by the same docstring as function A, which is:

    ** I would like someway I can put the docstring of A here**
    '''
    pass

感谢您的帮助或向我推荐其他链接,我尝试用谷歌搜索,但没有找到目标信息。

您可以编写一个装饰程序来完成此操作:

def append_doc_of(fun):
    def decorator(f):
        f.__doc__ += fun.__doc__
        return f

    return decorator


def A():
    '''
    I am doctring for function A
    '''
    pass


@append_doc_of(A)
def B1():
    '''
    I am doctring for function B1,

    followed by the same docstring as function A, which is:

    '''
    pass

你可以通过一个decorator实现类似的功能,但是为什么不在docstring中放一个注释,说“请参阅a的文档以了解这些参数的解释”?是的,我同意。我发现在大多数情况下,这是一种更清晰的方式。