Извините, если это было задано раньше, но я тщетно искал ответ на мой точный вопрос. В принципе, с Python 2.7 у меня есть программа, в которой запущена серия инструментов геообработки, зависит от того, что содержится в серии переменных True/False, которые пользователь настраивает в script например.
x = True
if x:
run function
Однако теперь я обнаружил, что для функции не требуется буквально "True". Например:
In: x = True
if x:
print True
Out: True
In: x = 123
if x:
print True
Out: True
In: x = 'False'
if x:
print True
Out: True
In: x = False
if x:
print True
Out:
Значит, любое значение, отличное от False, должно оцениваться как True, чего не было бы, если x == True или если x является True. Если PEP 8 настоятельно рекомендует использовать только вариант if x:, может ли кто-нибудь объяснить, почему это происходит? Кажется, что если x: больше является критерием "если x не является False" или "если x существует". Имея это в виду, я считаю, что я должен использовать, если x является True: в этом случае, несмотря на то, что PEP 8 должен сказать.
С уважением