Выбор ответа Junior Типы, изменяемость и сравнение спрашивают часто обновлено
Чем is отличается от ==
Вопрос
Что проверяет оператор is?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Что оба имени указывают на один объект. is сравнивает идентичность: id(a) == id(b).
Варианты ответа
- Равенство значений через
__eq__ - Что оба имени указывают на один объектправильный ответ
- Что объекты одного типа или подтипа
- Равенство хешей объектов через
__hash__
Разбор
is сравнивает идентичность: id(a) == id(b). Равенство значений проверяет ==, он вызывает __eq__ и может быть переопределён, а is переопределить нельзя. Совпадение типа проверяют type(a) is type(b) или isinstance. Хеши у равных объектов совпадают, но совпадение хешей не означает ни равенства, ни идентичности.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.