Python Glossary English

все 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Сообщить о неточности