2013-10-08 3 views
0

Что такое недопустимые значения для функции bool()? Я имею в виду, какие аргументы заставляют его бросать исключения?python - недопустимые значения для bool

Насколько я знаю, какая-либо пользовательская структура данных True и пустой список, пустые строки и т. Д. Являются ложными.

Так существуют ли значения для аргументов bool, которые заставляют его возвращать, отличные от «Истинные» или «Ложные»?

ответ

3

No, bool() может возвращать только True или False. Все значения в Python имеют логическое значение.

Если значение не является пустым контейнером, числовое значение 0, None или False, bool() возвращает True.

Обратите внимание, что bool() будет использовать __len__, __nonzero__ (Python 2) и __bool__ (Python 3) специальные методы, если присутствует; если они выбрасывают исключение bool() не поймают его.

+0

Только несколько распространенный тип, который я могу придумать с верхней части головы, с исключением бросания '__nonzero__' -' numpy.ndarray'. – mgilson

+0

@mgilson: так Martijn неправильно сказать, что «все значения в Python имеют логическое значение», или авторы numpy неправильно говорят: «значение истинности массива с более чем одним элементом неоднозначно»? Или (как я подозреваю) является ответом на этот вопрос выше любого из наших классов оплаты? ;-) –

+0

@SteveJessop: Python считает, что все значения имеют логическое значение; 'numpy' правильно использует исключения, чтобы сигнализировать, что вопрос не должен задаваться из определенных значений. –

Смежные вопросы