В Python каждое значение имеет логическое (булево) представление. Оно неявно приводится к bool
, когда используется в if
, bool
, not
и других логических операциях.
Ложными (False
) считаются следующие объекты: None
, False
, 0
любого типа, а также пустые коллекции (""
, []
, {}
и т. д.), включая пользовательские коллекции с методом __len__
, если __len__
возвращает 0
.
Можно также определить пользовательскую проверку логического значения для своих объектов, используя магический метод __bool__
:
class Rectangle:
def __init__(self, width, height):
self._w = width
self._h = height
def __bool__(self):
return bool(self._w and self._h)
print(bool(Rectangle(2, 3))) # True
print(bool(Rectangle(2, 0))) # False
print(bool(Rectangle(0, 2))) # False
Обратите внимание, что в Python 2 аналогом
__bool__
является метод __nonzero__
.👉@BookPython
>>Click here to continue<<