115 votes

Comparer si deux variables font référence au même objet en python

Comment vérifier si deux variables référencent le même objet ?

 x = ['a', 'b', 'c']
y = x                 # x and y reference the same object
z = ['a', 'b', 'c']   # x and z reference different objects

164voto

Jochen Ritzel Points 42916

C'est à ça que sert is

Dans l'exemple, x is y renvoie True car il s'agit du même objet tandis que x is z renvoie False car ce sont des objets différents (ce qui arrive à contenir des données identiques).

13voto

Mark Rushakoff Points 97350

y is x sera True , y is z sera False .

12voto

Bill Points 23

Vous pouvez également utiliser id() pour vérifier à quel objet unique chaque nom de variable fait référence.

 In [1]: x1, x2 = 'foo', 'foo'

In [2]: x1 == x2
Out[2]: True

In [3]: id(x1), id(x2)
Out[3]: (4509849040, 4509849040)

In [4]: x2 = 'foobar'[0:3]

In [5]: x2
Out[5]: 'foo'

In [6]: x1 == x2
Out[6]: True

In [7]: x1 is x2
Out[7]: False

In [8]: id(x1), id(x2)
Out[8]: (4509849040, 4526514944)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X