关于Python的 a, b = b, a+b

Python中有一种写法:多个值同时赋给多个变量,如:a, b = b, a+b

1. A写法

a = 0, b = 1
a, b = b, a+b
print a, b   #结果为:1 1

这种写法,Python先计算等号的右边,再赋值,这样就保证了a, b都是初始值

2. B写法

a = 0, b = 1
a = b
b = a + b
print a, b   #结果为:1 2

很明显,这种是顺序计算赋值,a+b中的a的值已经改变了

要想B写法取得A写法的效果,必须增加一个变量

a = 0, b = 1, c = 0
c = a
a = b
b = c + b
print a, b   #结果为:1 1
原文地址:https://www.cnblogs.com/delav/p/10711816.html