Sobes.tech
Middle+

What is the difference between the operators == and is in Python? When is each preferable to use?

sobes.tech AI

Answer from AI

The == operator in Python checks for equality of object values, meaning it calls the __eq__ method and compares the contents or the equality logic defined in the class.

The is operator checks whether both variables point to the same object in memory (identity of objects).

When to use:

  • == — when you need to check if the data is equal, for example, two strings with the same text.
  • is — when you need to check if the variables refer to exactly the same object, for example, for checking against None (if x is None:).

Example:

a = [1, 2, 3]
b = [1, 2, 3]
c = a

print(a == b)  # True, contents are the same
print(a is b)  # False, different objects
print(a is c)  # True, same reference

x = None
print(x is None)  # True, proper check for None