连续赋值

python中是可以使用连续赋值的方式,一次为多个变量进行赋值的,如:

a = b = c = 1
a, b, c = 1, 1, 1

但是有一个问题,比如:

a = 3
a, b = 1, a

按照正常的顺序赋值的逻辑,先进行a = 1,在进行b = a,最后b应该等于1,但是这里b应该等于3。

因为在连续赋值语句中等式右边其实都是局部变量,而不是真正的变量值本身。赋值给b的a,是原来a指向的变量3,而不是重新复制后的a。

如果各变量分开赋值

a = 3
a = 1
b = a

这时b结果为1。

你可能感兴趣的:(连续赋值)