python作业是从右到左严格评估的吗?

csi*_*siz 4 python operator-precedence

换句话说就是

d = {}
d["key"] = len(d)
Run Code Online (Sandbox Code Playgroud)

安全的Python?

我知道这是C++中未定义的行为 ; 在计算要分配给它的值之前,程序可能会获得对元素的引用.这在Python中是类似的还是len(d)以前总是计算d.__getitem__("key")

Abh*_*jit 7

是的,在Python中它是安全的:表达式的评估顺序是从左到右,但在赋值语句中,在赋值发生之前评估右侧.算术表达式也按其后缀的算术顺序进行评估.

5.14.评估订单

Python从左到右评估表达式.请注意,在评估分配时,右侧在左侧之前进行评估.

在以下行中,表达式将按其后缀的算术顺序进行计算: