Позволяет определить поведение экземпляра пользовательского типа при проверке на истинность.
object.__bool__(self)
-> bool
self -- Ссылка на экземпляр.

Вызывается при проверках объекта на истинность и при использовании 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__().
Синонимы поиска: object.__bool__, object, __bool__, истина nonzero
На заметку
Читайте нас в Twitter. Ссылка в самом низу страницы.