我正在_ast
做一些代码分析,但在获取导入函数的名称时遇到了问题。
假设我的代码文件 ( code.py
) 如下所示:
import somemod
def foo():
somemod.bar()
当我得到这个文件的 ast 时root = compile(open('codefile.py').read(), 'codefile.py', 'exec', _ast.PyCF_ONLY_AST)
,我可以得到这样的行调用somemod.bar
:
root.body[1].body[0]
这是一个_ast.Expr
节点。
然后我希望能够somemod.bar
通过查看这个节点来获得。但是,当我查看 时root.body[1].body[0].value.func.value.id
,我得到了somemod
。据我所知,我找不到获得bar
或somemod.bar
我错过了什么?我怎样才能到达bar
?