a, b = b, a + b,运行机制解决方案

a, b = b, a + b,运行机制
rt,按c语言的话,必须使用一个临时变量

tmp = a + b
        a = b
        b = tmp

python中如何运行,求解释
------解决方案--------------------
a, b = b, a + b
右边运算结果保存为1个tuple, 而a, b = b, a + b 意思是a, b分别取这个tuple中的第0个第1个值
>>> a = 1
>>> b = 1
>>> c = a , a + b
>>> c
(1, 2)
>>> a, b = a , a + b
>>> a
1
>>> b
2
>>> a = a , a + b
>>> a
(1, 3)
>>> a, b, c = a , a + b

Traceback (most recent call last):
  File "<pyshell#67>", line 1, in <module>
    a, b, c = a , a + b
TypeError: can only concatenate tuple (not "int") to tuple
>>> 

这样你该明白了吧?
------解决方案--------------------
>>> a = 1
>>> b = 1
>>> a, b, d = a , a + b

Traceback (most recent call last):
  File "<pyshell#70>", line 1, in <module>
    a, b, d = a , a + b
ValueError: need more than 2 values to unpack
>>> 


------解决方案--------------------
a指向内存空间1,引用计数器加1
b指向内存空间2,引用计数器加1
(b, a+b)指向内存空间3,b不变,a+b指向内存空间4
赋值的同时(a,b)指向内存空间3,a指向内存空间2,b指向内存空间4
最后,内存空间1和内存空间3没有任何变量指向,引用计数器减1为0,空间由python回收

我的理解是这样,不知道有没有错
------解决方案--------------------
python是是赋值给tuple,分别设置 a和b