¿Cómo funciona Python para asignar múltiples variables en una línea?

Cuáles son los pasos que Python realmente hace para asignar múltiples variables en una línea?

Solía hacer A [0], A [1] = A [1], A [0] para intercambiar, pero recientemente recibí un error al asignar una lista vinculada.

# insert self->node->...
def insert_next(self, node): 
  node.next, node.prev = self.next, self
  self.next, self.next.prev = node, node

self.next volversenode antes de lo que esperaba, por lo que la asignación se convierte en

self.next, node.next = node, node     

Sin embargo, si lo hago

self.next.prev, self.next = node, node

¡Funciona

"Asumo" que los pasos son

1. cache values at the right side
2. assign to left side one by one, left to right

n

1. cache values at the right side
2. cache the ref at the left side
2. assign to ref one by one, left to right

Entonces, ¿cuáles son los pasos?

Respuestas a la pregunta(1)

Su respuesta a la pregunta