我试图找到this的解释,即Gotcha部分:
b = "1984"
a = b, c = "AB"
print(a, b, c)
返回:
('AB', 'A', 'B')
我理解多个等于会发生什么:
a = b = 1
但是将它与逗号一起使用,我无法理解它的行为,为什么它的工作原理?
答案 0 :(得分:12)
答案是
a = b, c ="AB"
表现得像:
a = (b, c) = "AB"
这就是原因:
a = "AB" and b = "A" and c = "B"
答案 1 :(得分:0)
a = b, c = "AB"
不会以您认为的方式解释。你确实有一个多重赋值,但它不是a = b和c =" AB"。它是c,b =" AB"和a =" AB"。在python中
x = y = z = 1
被解释为x,y和z得到赋值1.而逗号用于将值列表解包为单个变量,因此b,c =" AB"解包" AB"进入" A"和" B"。所以在这一行的最后,
a = b, c = "AB" a == "AB" b == "A" c == "B"
答案 2 :(得分:-2)
这归结为操作顺序,第2行实际上是两个不同的陈述。
a = b
首先完成。然后
b, c = "AB"
正在解包“AB”的值,并将“A”分配给b,将“B”分配给c。