В чем разница в использовании между is и ==?

1. == — сравнение значений (equality)

  • Проверяет, равны ли значения объектов.

  • Вызывает метод __eq__ объекта.

  • Даже если объекты разные в памяти, но содержат одинаковые данные — == вернёт True.

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

print(a == b)  # True  (списки с одинаковым содержимым)

2. is — сравнение идентичности (identity)

  • Проверяет, являются ли два имени ссылками на один и тот же объект в памяти.

  • Сравнивает id(a) и id(b).

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

print(a is b)   # True  (ссылаются на один объект)
print(a == b)   # True  (и значения одинаковы)

3. Пример, когда == и is различаются


💡 В автотестах часто встречается:

Last updated

Was this helpful?