История изменений
Исправление Virtuos86, (текущая версия) :
проверять булевое значение file, что в отличие от проверки на равенство с None позволяет пихать в file что угодно.
А что, пистон интерпретирует как False не только False и None?
Не только. Еще туда попадают все контейнеры с нулевым размером, включая строки, т.е. (), [], {}, «» и т.д. Ну и 0, естественно.
Собственно, до определенной версии True
и False
были обычными переменными:
True = 1
False = 0
bool
, субкласса int
. То есть понятие «булевое значение» носило чисто декларативный характер и не несло за собой никакой проверки типов, поэтому такая широкая трактовка была нормальной.Исправление Virtuos86, :
проверять булевое значение file, что в отличие от проверки на равенство с None позволяет пихать в file что угодно.
А что, пистон интерпретирует как False не только False и None?
Не только. Еще туда попадают все контейнеры с нулевым размером, включая строки, т.е. (), [], {}, «» и т.д. Ну и 0, естественно.
Собственно, до определенной версии True
и False
были обычными переменными:
True = 1
False = 0
bool
, субкласса int
.Исходная версия Virtuos86, :
проверять булевое значение file, что в отличие от проверки на равенство с None позволяет пихать в file что угодно.
А что, пистон интерпретирует как False не только False и None?
Не только. Еще туда попадают все контейнеры с нулевым размером, включая строки, т.е. (), [], {}, «» и т.д. Ну и 0, естественно.