以下Python表达式之间有什么区别:
# First: x,y = y,x+y # Second: x = y y = x+y
第一给出的结果与第二给出的结果不同。
例如,
第一:
>>> x = 1 >>> y = 2 >>> x,y = y,x+y >>> x 2 >>> y 3
第二:
>>> x = 1 >>> y = 2 >>> x = y >>> y = x+y >>> x 2 >>> y 4
y是第一的 3 和第二的 4
在赋值语句中,总是在对变量进行实际设置之前先对右侧进行全面评估。所以,
x, y = y, x + y
评估板y(我们称之为的结果ham),评估x + y(呼叫spam),然后设置x要ham和y到spam。也就是说,就像
ham
x + y
spam
x
ham = y spam = x + y x = ham y = spam
相比之下,
x = y y = x + y
设置x为y,然后设置y为x(which == y)plus y,因此等效于
y为x(which == y)plus y
x = y y = y + y