首先第一个问题是, 这个ast模块有什么用呢? ast提供了访问和修改上述中抽象语法树的功能.可以做一些比如测试,代码生成,静态分析等等....class ast.NodeVisitor 和 class ast.NodeTransformer
这两个的区别就是visit是修改原来的node,transformer可以替换一个新的node....好,现在我们做这样一个事情.对于某个class, 在发生函数调用的时候,打出一条log,这种情况在调试的时候是很常见的吧.那么这个可以用getattr来做,就是getattr的时候判断是不是一个函数,如果是函数就打出...的parse方法得到ast tree的根节点root_node, 我看可以通过根节点来遍历语法树,从而对python代码进行分析和修改。...ast.parse(可以直接查看ast模块的源代码)方法实际上是调用内置函数compile进行编译,如下所示:
def parse(source, filename='', mode=