← Все вопросы

Как задать длину своего объекта, чтобы работал len() ?

Задан 17 месяцев назад298 просмотров2 ответа
10

У меня класс-обёртка над списком задач. Хочу, чтобы len(my_obj) возвращал количество задач. Как это сделать?

2 ответа

7
✓ Принятый ответ — помог автору

__len__.

15

Определи __len__, он должен вернуть целое неотрицательное число:

class TaskList:
    def __init__(self):
        self.items = []

    def __len__(self):
        return len(self.items)

Теперь len(obj) работает. Бонус: если __len__ возвращает 0, объект считается «ложным» в условиях (if obj: даст False), пока не определишь __bool__.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект