Сравнение None в Python может быть непредсказуемым для пользовательских классов, потому что пользовательские классы могут переопределять методы сравнения, изменяя заранее предполагаемое поведение. 1
Оператор ==
проверяет элементы на равенство по значению, и пользовательские классы могут интерпретировать равенство по-своему. 14 В результате ==
может возвращать значение истины даже в случаях, когда сравниваемое с None ожидаемо ложно. 1
Для сравнения с None в Python рекомендуется использовать оператор is
, который оценивает идентичность объектов. 1 Он позволяет удостовериться, что переменная действительно имеет значение None. 1