← Все вопросы
Как задать длину своего объекта, чтобы работал len() ?
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__.
Ваш ответ
Войдите, чтобы ответить на вопрос.