Python AST:几个语义不清楚,例如expr_context

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_contextName定义的位置,例如,它是在左侧(Store,AugStore),右侧(Load,AugLoad),del(Del)或参数列表(如from FunctionDefLambda(Param))中的赋值.

AugAssign就像a = a <op> b.Assign只是一个简单的a = b.

我还没有找到一种方法来引用一个真正的Python对象,似乎没有.