Wie funktioniert der Python-Kommaoperator während der Zuweisung?

Ich habe die Zuweisungsanweisungen in den Python-Dokumenten gelesen (http://docs.python.org/reference/simple_stmts.html#assignment-statements ).

Darin wird zitiert, dass:

Wenn das Ziel eine Zielliste ist, die in Klammern oder eckigen Klammern angegeben ist: Das Objekt muss eine Iterierbarkeit mit der gleichen Anzahl von Elementen aufweisen, wie es Ziele in der Zielliste gibt, und seine Elemente werden von links nach rechts den entsprechenden Elementen zugewiesen Ziele.

Nachdem ich es gelesen hatte, dachte ich daran, ein Beispiel wie das folgende zu schreiben:

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

Meine Annahme war, dass a und b den Wert 9 haben sollten.

Ich habe mich jedoch als falsch erwiesen. 'a' hat den Wert 9 und 'b' hat den Wert 5.

Kann mir jemand helfen, das besser zu verstehen? Warum wird der ältere Wert von 'a' zugewiesen und nicht der neue? Wie in den Dokumenten angegeben, wird der Wert von a als erstes zugewiesen, oder? Vermisse ich etwas?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage