Comment puis-je vérifier si deux variables référencent le même objet en Python?
x et y sont deux variables.
Je peux vérifier si elles sont équivalentes à l'aide de x == y
, mais comment puis-je vérifier si ils ont la même identité?
Exemple:
x = [1, 2, 3]
y = [1, 2, 3]
Maintenant x == y
est Vrai, parce que x et y sont égaux, cependant, x et y ne sont pas le même objet.
Je suis à la recherche de quelque chose comme sameObject(x, y)
qui dans ce cas est censé être Faux.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
is
de vérifier si deux objets ont la même identité.À construire sur la réponse de Mark Byers:
La
is
évaluation de distinguer les identités fonctionnera lorsque les variables contiennent des objets et pas les types primitifs.Si vous avez besoin de comparer les primitives ainsi, je suggérerais à l'aide de la builtin
id()
fonction.À partir de la Python docs:
De sorte que deviendra ce:
primitive_one
etprimitive_two
en fait des objets différents? Je veux dire, Python, sous le capot, il suffit de traiter les primitives différemment tel qu'il est, en fait, un seul objet, etprimitive_one
etprimitive_two
sont tout simplement des références différentes pour le même objet? Je demande parce que certaines langues de travail de cette façon, et je sais qu'en Python tout est vraiment une référence sous le capot.