Логический (булев) тип данных.

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

    my_bool_true = True
my_bool_true = bool(10)
my_bool_true = bool('some')

my_bool_false = False
my_bool_false = bool(0)
my_bool_false = bool('')
my_bool_false = bool()

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

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

На заметку
Данный тип является подтипом целого (int).

    isinstance(True, int)  # True
isinstance(False, int) # True

issubclass(bool, int) # True

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

На заметку
Для пользовательского объекта реализовать поведение при проверке на его истинность можно в методе __bool__.
Синонимы поиска: bool, булево булево boolean
На заметку
У нас есть новостная группа в Telegram. Там же можно обсудить интересующие вопросы. Ссылка в самом низу страницы.