Maison >développement back-end >Tutoriel Python >En quoi l'affectation multiple de Python diffère-t-elle de l'affectation séquentielle ?
Mystère des affectations multiples en Python
En Python, les affectations peuvent être évaluées d'une manière qui peut ne pas être immédiatement évidente. L'un de ces cas est l'affectation multiple, dans laquelle deux variables ou plus se voient attribuer des valeurs simultanément.
Considérez ce qui suit :
>>> x = 1 >>> y = 2
Essayons maintenant d'attribuer les deux valeurs à la fois :
>>> x, y = y, x + y >>> x 2 >>> y 3
De façon inattendue, cela produit des résultats différents par rapport à l'attribution des valeurs séparément :
>>> x = 1 >>> y = 2 >>> x = y >>> y = x + y >>> x 2 >>> y 4
Explication
La clé pour comprendre ce comportement réside dans l'ordre d'évaluation dans un énoncé de mission. En Python, le côté droit d'une affectation est toujours évalué complètement avant le réglage réel des variables.
Dans le premier cas, "x, y = y, x y", le côté droit est évalué comme suit :
Les variables sont alors définis sur ces valeurs : x est attribué au jambon et y est attribué au spam.
En revanche, dans le deuxième cas, "x = y; y = x y", les affectations se produisent séquentiellement : x est défini à y, puis y est défini sur x y, ce qui équivaut à y y.
Par conséquent, l'affectation multiple dans le premier cas se comporte différemment car les valeurs sont évaluées et définies simultanément. Si vous souhaitez effectuer des tâches distinctes, vous devez utiliser cette dernière approche séquentielle.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!