Сообщить об ошибке.

Логический тип данных bool в Python

Логический тип bool представлен двумя постоянными значениями False и True. Значения используются для представления истинности

Встроенная класс bool() может использоваться для преобразования любого значения в логическое, если это значение можно интерпретировать как значение истинности. Если аргумент опущен вернётся False.

На заметку:
Тип bool является подтипом целого int.

x = bool(10)
print(x)
# True

x = bool('foo')
print(x)
# True

x = bool([0, 1, 2, 3, 4, 5, 6])
print(x)
# True

x = bool(0)
print(x)
# False

x = bool('')
print(x)
# False

x = bool([])
print(x)
# False

Хороший стиль программирования на Python требует избегать таких вызовов, если в этом нет особой необходимости, как чаще всего и бывает: всегда используйте только конструкцию if x и никогда не используйте конструкции:

  • if bool(x):
  • if x is True:
  • if x == True:
  • if bool(x) == True:

В то же время можно использовать вызовы bool(x) для подсчета количества истинных элементов в последовательности, например:

def count(iter): 
    return sum(bool(x) for x in iter)

В этом примере вызов функции bool гарантирует, что каждый элемент последовательности seq будет подсчитываться со значением 0, если он ложный или со значением 1, если он истинный, поэтому функция count(iter) более универсальна по сравнению с функцией sum(iter).

Тип bool не позволяет наследоваться. Его единственные экземпляры - False и True.

Для пользовательского объекта реализовать поведение при проверке на его истинность можно в методе bool.

x = isinstance(True, int)
print(x)
# True

x = isinstance(False, int)
print(x)
# True