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。
网友评论