Я спрашиваю об этом, потому что я знаю, что вещий способ проверить, является ли список пуст или не является следующее:Почему «[] == False» оценивается False, когда «if not []» успешно?
my_list = []
if not my_list:
print "computer says no"
else:
# my_list isn't empty
print "computer says yes"
напечатает computer says no
и т.д. Таким образом, это приводит меня к идентификации []
с False
истины -значения; Однако, если я пытаюсь сравнить [] и Ложное «непосредственно», я получаю следующее:
>>> my_list == False
False
>>> my_list is False
False
>>> [] == False
False
и т.д ...
Что здесь происходит? Я чувствую, что мне не хватает чего-то действительно очевидного.
Это отличный дизайн, так как он также позволяет программистам не использовать опцию 'if variable == True:'. Это должно быть либо 'if variable is True:' (Это точно True, а не что-то еще - не лучший способ делать что-то в большинстве случаев), или 'if variable' (это правда-y). – Darthfett