В чём разница между операторами == и is в Python?

== проверяет равенство значений, is — идентичность объекта. Два разных объекта могут быть равны, но is для них вернёт False.

Короткий ответ

Что ответить на собеседовании

== проверяет равенство значений, is — идентичность объекта. Два разных объекта могут быть равны, но is для них вернёт False.

Подробный разбор

Ответ с пояснениями

== проверяет равенство значений, is — идентичность объекта. Два разных объекта могут быть равны, но is для них вернёт False.

Например, a = [1] и b = [1]: a == b истинно, a is b ложно. После b = a обе переменные ссылаются на один список.

Для None и других специально выбранных singleton-сентинелов используйте проверку идентичности. Для строк и чисел выбирайте равенство, не полагайтесь на кеширование объектов интерпретатором. __eq__ может быть переопределён классом; оператор is такой пользовательской логики не вызывает.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее