Alb*_*ert 5 python abstract-syntax-tree
是否有关于该模块的ast
文档ast
?
Esp.,我想知道expr_context
(及其所有可能的值)究竟意味着什么.
另外,Assign
和之间有什么区别AugAssign
?
此外,在对局部变量进行赋值时,可以引用真正的Python对象而不是其名称吗?我自己构建一个AST,我有一些Python对象,我想在AST中访问它.另一种方法是为它们引入一些虚拟的临时var名称,并将该虚拟var名称添加到globals()
后来编译函数的作用域中,但这对我来说似乎有点糟糕(缓慢和笨拙).
Alb*_*ert 11
我会尝试自己回答.
经过一些更多的测试和猜测:
expr_context
是Name
定义的位置,例如,它是在左侧(Store
,AugStore
),右侧(Load
,AugLoad
),del
(Del
)或参数列表(如from FunctionDef
或Lambda
(Param
))中的赋值.
AugAssign
就像a = a <op> b
.Assign
只是一个简单的a = b
.
我还没有找到一种方法来引用一个真正的Python对象,似乎没有.