== сравнивает значения по правилам типа, а is проверяет, один ли это объект. Для проверки None обычно используют is None.
В чём разница между == и is в Python?
== сравнивает значения по правилам типа, а is проверяет, один ли это объект. Для проверки None обычно используют is None.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
== сравнивает значения по правилам типа, а is проверяет, один ли это объект. Для проверки None обычно используют is None.
a = [1, 2]
b = [1, 2]
c = a
print(a == b) # True
print(a is b) # False
print(a is c) # True
Сравнение значений может быть переопределено через eq. Идентичность от этого не меняется. Не используйте is для чисел и строк: интернирование и другие оптимизации могут создавать случайное впечатление, что такая проверка работает.