1
我正在使用_ast
進行一些代碼分析,並遇到導入函數的名稱時遇到問題。
假設我的代碼文件(code.py
)看起來是這樣的:`_ast`中導入函數的名稱
import somemod
def foo():
somemod.bar()
當我得到這個文件與root = compile(open('codefile.py').read(), 'codefile.py', 'exec', _ast.PyCF_ONLY_AST)
的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
?
啊!非常感謝。這讓我瘋狂。 PS:感謝'vars'(以前不知道) – inspectorG4dget