How do I check if two variables reference the same object in Python? [duplicate]
x and y are two variables.
I can check if they're equal usingx == y
, but how can I check if they have the same identity?
Example:
x = [1, 2, 3]
y = [1, 2, 3]
Now x == y
is True because x and y are equal, however, x and y aren't the same object.
sameObject(x, y)
which in that case is supposed to be False. You can use is
to check if two objects have the same identity.
>>> x = [1, 2, 3]
>>> y = [1, 2, 3]
>>> x == y
True
>>> x is y
False
Use x is y
or id(x) == id(y)
.
They seem to be equivalent.
id(object)
returns a unique number (identity) that adapts the philosophy of C-style pointer. For debugging id(x) == id(y)
is more convient.
x is y
is prettier.
==
utilizes equal comparator object.__eq__(self, other)
精彩评论