我觉得这不是一个很好的问题,但我们开始吧:
是否存在可以查看 python 文件(作为文本)并将其分解为“位”的库,例如字典/数组。然后我可以逐步遍历数组并挑选出类、函数、变量等。
我正在寻找一个可以分析整个项目并列出彼此相关的类/模块的工具。
我能想到的唯一方法是单步执行每一行并对其进行大量正则表达式。
我觉得这不是一个很好的问题,但我们开始吧:
是否存在可以查看 python 文件(作为文本)并将其分解为“位”的库,例如字典/数组。然后我可以逐步遍历数组并挑选出类、函数、变量等。
我正在寻找一个可以分析整个项目并列出彼此相关的类/模块的工具。
我能想到的唯一方法是单步执行每一行并对其进行大量正则表达式。
您正在寻找ast
模块,它可以让您分析和遍历 python 代码的抽象语法树。
该compile()
函数允许您将 python 源文件编译为 AST,但模块本身也提供了一个辅助函数,ast.parse()
:
import ast
with open(sourcefilename, 'r') as source:
tree = ast.parse(source.read(), sourcefilename)
有人写了一本关于 Python AST 争论的电子书:Green Tree Snakes -您可能会觉得有趣的缺失的 Python AST 文档。