如何以编程方式更改文件中的文档字符串

问题描述 投票:1回答:1

我需要在一堆文件中修改文档字符串,为它们添加输入参数的默认值(如果存在于类构造函数或函数签名中)。

所以说,我有以下给出:

# a bunch of code

class A:
    """A good class.

    Parameters
    ----------
    p : int
        A powerful parameter.

    q : float, optional
        An even more powerful parameter.
    """
    def __init__(self, p=3, q=.3):
        self.p = p
        self.q = q

# a bunch of more code

我需要浏览整个文件,找到所有这些实例,然后将它们更改为:

# a bunch of code

class A:
    """A good class.

    Parameters
    ----------
    p : int, optional (default=3)
        A powerful parameter.

    q : float, optional (default=.3)
        An even more powerful parameter.
    """
    def __init__(self, p=3, q=.3):
        self.p = p
        self.q = q

# a bunch of more code

然后将其保存回相同或不同的文件。

我正在努力确保在文档字符串中提到默认值,这对于人类来说非常容易,但我希望我不必手动完成整个包。

python inspect docstring
1个回答
0
投票

这正是你想要做的:

1-访问每个方法的docstring并修改它以包含默认值

这需要:1.1-列出属性1.2-在每个属性上做一些事情

modify = [a for a in dir(A) if not (a.startswith('__') and a.endswith('__'))]

(当然有一种方法可以检查属性是否属于私有,这只是一种快速方式)

然后,对于要修改的属性列表,您需要默认值,请使用inspect:

import inspect

inspect.getfullargspec(<YOURATTRIBUTE HERE>)

FullArgSpec(args=['self', 'p', 'q'], varargs=None, varkw=None, defaults=(3, .3), kwonlyargs=[], kwonlydefaults=None, annotations={})

您现在需要做的就是使用该信息来修改文档字符串

© www.soinside.com 2019 - 2024. All rights reserved.