Если вы реализуете __len__
, Python сделает это за вас, исходя из предположения, что длина 0 означает, что объект имеет логическое значение False
и что он имеет логическое значение True
в противном случае.
Если нет смысла внедрять __len__
, вы можете реализовать __nonzero__
(или __bool__
в 3.x (изменилось только имя)), который должен возвращать либо True
, либо False
в зависимости от логического значения объекта.