gpt4 book ai didi

python - 解析 Python 模块文档字符串

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

是否可以使用 AST 解析模块级文档字符串?

我正在开发 python 文档器 here访问模块标记并获取文档不会产生模块级文档字符串。到目前为止,我不得不求助于导入模块并获取其 __doc__ 或使用 inspect 获取文档。

我查看了 pydoc module有关其他文档编写者如何解析文档字符串的线索的来源,并发现 pydoc 最终必须做与我的文档编写者基本相同的事情才能获取模块级字符串。

我错过了什么吗?是通过实际导入模块来解析模块级文档字符串的唯一方法,还是可以直接从 AST 中解析文档字符串?

最佳答案

也许我没有理解这个问题,但你不能这样做吗(python 2.7.1)?

测试文件:

"""
DOC STRING!!
"""

def hello():
'doc string'
print 'hello'

hello()

互动环节:

>>> M = ast.parse(''.join(open('test.py')))
>>> ast.get_docstring(M)
'DOC STRING!!'

您还可以遍历 ast,查找文档字符串所在的插槽。

>>> M._fields
('body',)
>>> M.body
[<_ast.Expr object at 0x10e5ac710>, <_ast.FunctionDef object at 0x10e5ac790>, <_ast.Expr object at 0x10e5ac910>]
>>> # doc would be in the first slot
>>> M.body[0]._fields
('value',)
>>> M.body[0].value
<_ast.Str object at 0x10e5ac750>
>>> # it contains a string object, so maybe it's the doc string
>>> M.body[0].value._fields
('s',)
>>> M.body[0].value.s
'\nDOC STRING!!\n'

关于python - 解析 Python 模块文档字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9085350/

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