Comment fonctionnent les affectations chaînées en Python et quels sont les pièges potentiels liés à l'utilisation d'objets mutables ?

Linda Hamilton
Libérer: 2024-10-27 10:10:03
original
929 Les gens l'ont consulté

How do chained assignments work in Python, and what are the potential pitfalls when dealing with mutable objects?

Comment fonctionnent les affectations chaînées ?

Une affectation chaînée en Python, telle que :

x = y = somefunction()
Copier après la connexion

est équivalent aux deux instructions suivantes exécutées séquentiellement :

temp = somefunction()
x = temp
y = temp
Copier après la connexion

Cela signifie que l'expression à droite de l'opérateur d'affectation est évaluée en premier, et la valeur résultante est ensuite attribuée à tous les variables sur le côté gauche, de gauche à droite.

Par exemple, le code suivant imprimera le nombre 10 deux fois :

def somefunction():
    return 10

x = y = somefunction()
print(x)
print(y)
Copier après la connexion

Il est important de noter que les affectations chaînées peuvent être problématique lorsqu'il s'agit d'objets mutables, tels que des listes. Par exemple, le code suivant attribue la même liste vide à x et y :

x = y = []

x.append(1)

print(x)
print(y)
Copier après la connexion

Cela affichera [1, 1] car x et y font référence à la même liste. Si vous aviez l'intention de créer deux listes distinctes, vous devez plutôt écrire :

x = []
y = []

x.append(1)

print(x)
print(y)
Copier après la connexion

Cela affichera [1] et [] car x et y font référence à des listes différentes.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!