PEP8 имеет твердое мнение о логическом сравнении:
Не сравнивайте логические значения с True или False, используя ==:
Правильно:
if greeting:
Неправильно:
if greeting == True:
Хуже:
if greeting is True:
Но когда речь идет о None
, который также является встроенным синглтоном, рекомендуется следующее:
Сравнение с синглетами, такими как None, всегда должно быть сделано с is или is, никогда с операторами равенства.
Так почему проверка, если x is True
хуже, чем проверка, если x == True
, когда дело доходит до логических значений?