Python中的多个分配和评估顺序
以下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 = yspam = x + y
x = ham
y = spam
相比之下,
x = yy = x + y
设置x为y,然后设置y为x(which == y)plus y
,因此等效于
x = yy = y + y
以上是 Python中的多个分配和评估顺序 的全部内容, 来源链接: utcz.com/qa/408801.html