все Python 3ООПфункция
__len__
магические методы
Метод, который вызывает len(obj). Обязан вернуть целое число не меньше нуля.
Синтаксис
def __len__(self) -> int: ...
Кроме len(), __len__ задаёт истинность: объект без __bool__ ложен, когда __len__ вернул 0, — поэтому if container: работает и для своих коллекций. Отрицательное или нецелое значение даёт ValueError или TypeError прямо в вызове len().
Примеры
class Deck:
def __init__(self, cards):
self.cards = list(cards)
def __len__(self):
return len(self.cards)
d = Deck('AKQ')
print(len(d)) # → 3
print(bool(Deck(''))) # → False — пустая колода ложна
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности