How do I check if two variables reference the same object in Python?

Viewed 21420

x and y are two variables.
I can check if they're equal using x == 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.
I'm looking for something like sameObject(x, y) which in that case is supposed to be False.

2 Answers

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)

Related