python 关于连续赋值的简单工作原理

python的多元赋值原理是tuple的元组封装 (tuple packing) 和 序列拆封(sequence unpacking)
t = 12345, 54321, \u0026#39;hello!\u0026#39;这是元组封装 (tuple packing) 的例子,将多个值放进tuple里
x, y, z = t元组封装 (tuple packing) 的逆操作就是序列拆封(sequence unpacking)。这个调用等号右边可以是任何线性序列,序列拆封要求左侧的变量数目与序列的元素个数相同。
多元赋值变量交换的例子:
a, b = b, a就是将(b, a)打包成元祖,再序列的分给(a, b)这个序列

官方文档:
5. Data Structures;
Python tutorial 2.7.13 2.7.13 documentation

■网友
你的 test1相等于将 self.b 的值加2次 再赋值给self.b多元赋值self.a, sel.b = self.b, self.a + self.b先计算右边表示式的值,再分别赋值给"=" 左边的变量。self.b 赋值给self.aself.a + self.b 的值赋值给self.b
■网友
test2 中的多元赋值可以这么理解:
tmp_a = self.btmp_b = self.a + self.bself.a = tmp_aself.b = tmp_b
■网友
test1中,第一步self.a = self.b之后,self.a的值已经变成self.b的值了,第二步怎呢还能再直接引用呢?
test2应该算是python的特性吧。
一年过去的,题主的python学的怎么样了?有个问题想请教一下呀:
【python 关于连续赋值的简单工作原理】 在python中。连续赋值:a = b = c 这种,的运算顺序是什么样的?我测试了一下发现是先运算a=c,然后再运算b=c,觉得怪怪的,不知道是不是我理解的不对


    推荐阅读