Necesitamos tu apoyo para compartir nuestras reseñas referente a las ciencias informáticas.
Solución:
En una declaración de asignación, el lado derecho siempre se evalúa completamente antes de haciendo la configuración real de las variables. Asi que,
x, y = y, x + y
evalúa y
(llamemos al resultado ham
), evalúa x + y
(llámalo así spam
), después conjuntos x
a ham
y y
a spam
. es decir, es como
ham = y
spam = x + y
x = ham
y = spam
Por el contrario,
x = y
y = x + y
conjuntos x
a y
luego establece y
a x
(cual == y
) más y
entonces es equivalente a
x = y
y = y + y
Se explica en los documentos en la sección titulada “Orden de evaluación”:
… al evaluar una tarea, el lado derecho se evalúa antes que el lado izquierdo.
La primera expresión:
- Crea una tupla temporal con valor
y,x+y
- Asignado a otra tupla temporal
- Extraer la tupla a variables
x
yy
La segunda declaración son en realidad dos expresiones, sin el uso de tuplas.
La sorpresa es que la primera expresión es en realidad:
temp=x
x=y
y=temp+y
Puede obtener más información sobre el uso de la coma en “Formas entre paréntesis”.
Nos puedes añadir valor a nuestra información colaborando tu experiencia en las aclaraciones.