Как оператор запятой Python работает во время присваивания?

Я читал операторы присваивания в документации по Python (http://docs.python.org/reference/simple_stmts.html#assignment-statements)..

В нем цитируется, что:

If the target is a target list enclosed in parentheses or in square brackets: The object must be an iterable with the same number of items as there are targets in the target list, and its items are assigned, from left to right, to the corresponding targets.

Прочитав его, я подумал о том, чтобы написать вот такой образец:

a = 5
b = 4
a, b = a + b, a
print a, b

Мое предположение заключалось в том, что a и b должны иметь значение 9.

Тем не менее, я ошибаюсь. «a» имеет значение 9, а «b» имеет значение 5.

Может ли кто-нибудь помочь мне понять это лучше? Почему присваивается старое значение «а», а не новое? Согласно документам, значение a будет присвоено первым, верно? Я что-то упускаю?

27
задан Simeon Visser 16 July 2012 в 10:25
поделиться