Saltar al contenido

Orden de asignación y evaluación múltiple en Python

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 yluego establece y a x (cual == y) más yentonces 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:

  1. Crea una tupla temporal con valor y,x+y
  2. Asignado a otra tupla temporal
  3. Extraer la tupla a variables x y y

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *