gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:30 25 4
gpt4 key购买 nike

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

所以可以说,我给出了以下内容:

# 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

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

我试图确保文档字符串中提到默认值,这对于人类来说很容易做到,但我希望我不必手动浏览整个包。

最佳答案

这正是您想要做的:

1- 访问每个方法的文档字符串并修改它以包含默认值

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

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

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

然后,要修改您想要的默认值的属性列表,请使用检查:

import inspect

inspect.getfullargspec(<YOURATTRIBUTE HERE>)

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

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

关于python - 如何以编程方式更改文件中的文档字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52381977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com