Выбор ответа Junior Типы, изменяемость и сравнение спрашивают часто обновлено

Чем is отличается от ==

Вопрос

Что проверяет оператор is?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Что оба имени указывают на один объект. is сравнивает идентичность: id(a) == id(b).

Варианты ответа

  1. Равенство значений через __eq__
  2. Что оба имени указывают на один объектправильный ответ
  3. Что объекты одного типа или подтипа
  4. Равенство хешей объектов через __hash__

Разбор

is сравнивает идентичность: id(a) == id(b). Равенство значений проверяет ==, он вызывает __eq__ и может быть переопределён, а is переопределить нельзя. Совпадение типа проверяют type(a) is type(b) или isinstance. Хеши у равных объектов совпадают, но совпадение хешей не означает ни равенства, ни идентичности.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме