Странная рекомендация PEP8 при сравнении логических значений с True или False

В конце python PEP8 Я читаю:

  • Не сравнивайте логические значения с True или False, используя ==

     Да: если приветствуют:
    Нет: если приветствие == True:
    Хуже того: если приветствие истинно:
    

У меня нет проблем с этой рекомендацией, когда логическое значение True , но это звучит странно при проверке на False

Если я хочу знать, является ли приветствие переменной False, почему не следует Я пишу:

    if greeting == False:

Если я напишу , если не приветствую: , это будет иметь совсем другое значение, чем это утверждение. Что делать, если приветствие отсутствует? Что, если это пустая строка? Означает ли эта рекомендация PEP8, что переменные, хранящие логические значения, должны содержать только True или False, и что для этих переменных следует избегать None?

На мой взгляд, это похоже на рекомендацию, исходящую от других языков со статической типизацией и которая не подходит с python, по крайней мере, для сравнения с False.

И, кстати, кто-нибудь знает, почему , если приветствие истинно: описывается хуже, чем , если приветствие == True: ? Должны ли мы также понимать, что , если приветствие ложно: также хуже, чем , если приветствие == False: ?

15
задан kriss 29 October 2010 в 08:47
поделиться