Я читал инструкции присваивания в документах Python (http://docs.python.org/reference/simple_stmts.html#assignment-statements).
В этом цитируется, что:
Если целью является целевой список, заключенный в круглые скобки или в квадратных скобках: объект должен быть итерируемым с тем же количеством элементов, что и целевые объекты в целевом списке, а его элементы назначаются слева направо, к соответствующим целям.
После прочтения я подумал о написании такого примера:
a = 5
b = 4
a, b = a + b, a
print a, b
Мое предположение заключалось в том, что a и b оба должны иметь значение 9.
Однако я ошибаюсь. "a" имеет значение 9 и "b" имеет значение 5.
Может кто-нибудь помочь мне понять это лучше? Почему старое значение "a" назначено, а не новое? Как в документах, значение будет присвоено в первую очередь? Я что-то пропустил?