python:获取导入函数的抽象语法树?

时间:2011-01-27 02:35:18

标签: python abstract-syntax-tree

假设我已经在解释器中导入了一个python模块。如何在解释器中获取导入模块的抽象语法树(及其中的任何函数和类)?我不想重新解析源文件。谢谢!

2 个答案:

答案 0 :(得分:8)

也许你在这个食谱中找到了一些灵​​感:

  

输出Python AST的人类可读版本的函数。

或者使用compilerinspect结合使用(当然,仍然使用来源):

>>> import compiler, inspect
>>> import re # for testing 
>>> compiler.parse(inspect.getsource(re))
Module('Support for regular expressions (RE). \n\nThis module provides ...

答案 1 :(得分:0)

除了源代码之外,似乎没有办法获得AST。如果你解释为什么你不想重新解析源文件,也许我们可以提供帮助。