我觉得这不是一个很好的问题,但我们走了:
是否存在可以查看python文件(作为文本)并将其反汇编为'bits'的库,比如字典/数组。然后我可以逐步浏览数组并选择类,函数,变量等。
我正在构建一个可以分析整个项目的工具,并列出彼此相关的类/模块。
我能想到单独做这件事的唯一方法就是逐步完成每一行并对其进行大量的正则表达式。
答案 0 :(得分:4)
您正在寻找ast
module,它允许您分析和遍历python代码的抽象语法树。
compile()
function允许你将python源文件编译成AST,但模块本身也提供了一个辅助函数,ast.parse()
:
import ast
with open(sourcefilename, 'r') as source:
tree = ast.parse(source.read(), sourcefilename)
有人写了一篇关于Python AST争论的电子书:Green Tree Snakes - the missing Python AST docs你可能会感兴趣。