В чем разница в использовании между is и ==?
1. == — сравнение значений (equality)
== — сравнение значений (equality)Проверяет, равны ли значения объектов.
Вызывает метод
__eq__объекта.Даже если объекты разные в памяти, но содержат одинаковые данные —
==вернётTrue.
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True (списки с одинаковым содержимым)2. is — сравнение идентичности (identity)
is — сравнение идентичности (identity)Проверяет, являются ли два имени ссылками на один и тот же объект в памяти.
Сравнивает
id(a)иid(b).
a = [1, 2, 3]
b = a
print(a is b) # True (ссылаются на один объект)
print(a == b) # True (и значения одинаковы)3. Пример, когда == и is различаются
== и is различаютсяx = [1, 2, 3]
y = [1, 2, 3]
print(x == y) # True (одинаковые данные)
print(x is y) # False (разные объекты в памяти)💡 В автотестах часто встречается:
# Хорошо
if result is None:
...
# Плохо (работает, но менее читаемо)
if result == None: # noqa: E711
...PreviousКак работают dict comprehension, list comprehension и set comprehension?NextЧто такое *args, **kwargs?
Last updated
Was this helpful?