Логический тип 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