我正在_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?