¿Cómo funciona el operador de coma de Python durante la asignación?

Estaba leyendo las declaraciones de asignación en los documentos de Python (http://docs.python.org/reference/simple_stmts.html#assignment-statements ).

En eso se cita que:

Si el objetivo es una lista de objetivos entre paréntesis o entre corchetes: el objeto debe ser iterable con el mismo número de elementos, ya que hay objetivos en la lista de objetivos, y sus elementos se asignan, de izquierda a derecha, al correspondiente objetivos

Después de leerlo, pensé en escribir una muestra como esta:

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

Mi suposición era que a y b deberían tener el valor de 9.

Sin embargo, estoy equivocado. 'a' tiene el valor de 9 y 'b' tiene el valor de 5.

¿Puede alguien ayudarme a entender esto mejor? ¿Por qué se asigna el valor más antiguo de 'a' en lugar del nuevo? Según los documentos, el valor de a se asignará primero, ¿verdad? ¿Me estoy perdiendo de algo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta