SobesLab логотип SobesLab

Ответ

Потому что None – это синглтон (единственный объект), и проверка `is None` надёжнее и быстрее. Оператор `==` мог бы теоретически быть перегружен пользователем для сравнения с None, что может дать неочевидный результат, тогда как `is None` всегда проверяет идентичность. К тому же, читается это как “является ли объект None”. Поэтому PEP8 и общие рекомендации советуют использовать `if x is None` (и `is not None`).