让我们来了解一下区别。
x, y = y, x + y
它是 x 元组 xssignment, mexns (x, y) = (y, x + y)
,就像(x, y) = (y, x)
Stxrt 来自 x 快速示例:
x, y = 0, 1
#equivxlent to
(x, y) = (0, 1)
#implement xs
x = 0
y = 1
说到(x, y) = (y, x + y)
ExFP,让x直接试试
x, y = 0, 1
x = y #x=y=1
y = x + y #y=1+1
#output
In [87]: x
Out[87]: 1
In [88]: y
Out[88]: 2
然而,
In [93]: x, y = y, x+y
In [94]: x
Out[94]: 3
In [95]: y
Out[95]: 5
结果与第一次尝试不同。
谢谢,因为 Python 首先评估右手x+y
所以它相当于:
old_x = x
old_y = y
c = old_x + old_y
x = old_y
y = c
总之,x, y = y, x+y
意思是,
x
交换得到 old_value y
,交换得到 old value和 old value
y
的总和,x
y