Карточка 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 ошибок.