Нет, они не совпадают.
Когда вы пишете a,b = b, a+b
, назначения выполняются "одновременно".a,b = b, a+b
совпадает с (a, b) = (b, a+b)
.Итак, после
a, b = 5, 8
a = 5 и b = 8.Когда Python видит это
(a, b) = (b, a+b)
, он сначала вычисляет правую сторону (b, a+b)
, равную (8,13)
, а затем назначает (этот кортеж) левой стороне , до (a,b)
.
Если у вас есть: a = b
и затем b = a+b
, две операции выполняются одна за другой.Но для каждого из них:
a = b
Это сначала вычисляет правую сторону b
, а затем присваивает (это значение) левой стороне , чтобыa
.И снова
b = a + b
Это сначала вычисляет правую сторону a + b
, а затем присваивает (это значение) левой стороне , b
.