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

Почему сравнивают через is None

Вопрос

Почему пишут x is None, а не x == None?

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

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

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

Коротко

None единственный объект своего типа, поэтому проверка идентичности точна и быстра. == вызывает eq, который класс может переопределить (например, в numpy или ORM == None строит выражение).

Ответ

None единственный объект своего типа, поэтому проверка идентичности точна и быстра. == вызывает __eq__, который класс может переопределить (например, в numpy или ORM == None строит выражение).

Разбор

PEP 8 прямо рекомендует сравнивать с синглтонами через is и is not.

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

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

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