Позволяет определить поведение экземпляра пользовательского типа при проверке на истинность.
Прототип
object.__bool__(self)
Параметры
self -- Ссылка на экземпляр.
Результат
bool
Описание
Вызывается при проверках объекта на истинность и при использовании bool().
Должен возвращать True, либо False.

    class EmptyBus:

def __bool__(self):
return False


class FullBus:

def __bool__(self):
return True


my_bus_is_full = FullBus()

if my_bus_is_full:
print('My bus is full') # My bus is full


bool(my_bus_is_full) # True
bool(EmptyBus()) # False

Когда не определён, вызывается object.__len__(), если он определён, и объект считается истинным, если результат ненулевой.

Если класс не определил, ни __len__(), ни __bool__(), то все его экземпляры считаются истинными. Также ведут себя все объекты в Python 2.

На заметку
В Python 2 аналогичный метод называется object.__nonzero__().
Синонимы поиска: истина nonzero

Нет обсуждений для отображения.
Если у вас есть, что сказать, можете представиться и исправить ситуацию.