Python: configuración de dos valores variables separados por una coma en python

¿Cuál es la diferencia en python entre hacer:

a, b = c, max(a, b) 

y

 a = c b = max(a, b) 

¿Qué significa tener las dos asignaciones de variables establecidas en la misma línea?

Sus dos fragmentos hacen cosas diferentes: pruebe con a , c igual a 7 , 8 y 9 respectivamente.

El primer fragmento de código establece las tres variables en 9 , 8 y 9 . En otras palabras, max(a, b) se calcula antes de que a se asigne al valor de c . Esencialmente, todo lo que a, b = c, max(a, b) hace es empujar dos valores en la stack; las variables a y b se asignan a estos valores cuando se vuelven a quitar.

Por otro lado, la ejecución del segundo fragmento de código establece las tres variables en 9 . Esto se debe a que a está configurado para apuntar al valor de c antes de que se realice la llamada a la función max(a, b) .

Ellos son diferentes. El segundo es como hacer.

 a, b = c, max(c, b) 

porque está asignando c a a antes de hacer b = max(a, b) . Mientras que el primero está usando el antiguo valor de a para calcularlo.