Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpClLn 99 of 174 menu
◀ ▶

Длина объекта-коллекции в ООП в Python

Чтобы функция len работала с нашим объектом, в классе объявляют метод __len__. Он должен вернуть число элементов в коллекции.

Давайте сделаем класс с числами и методом __len__:

class Numbers: def __init__(self): self.__data = [1, 2, 3, 4, 5] def __len__(self): return len(self.__data)

Создадим объект и выведем длину:

nums = Numbers() print(len(nums)) # выведет 5

Длину можно считать не только от списка в __init__. Добавим метод, который дописывает число в конец, и снова вызовем len:

class Numbers: def __init__(self): self.__data = [1, 2, 3] def __len__(self): return len(self.__data) def add(self, num): self.__data.append(num)

Проверим изменение длины:

nums = Numbers() print(len(nums)) # выведет 3 nums.add(4) print(len(nums)) # выведет 4

Сделаем коллекцию сотрудников. В __len__ вернем длину списка объектов Employee:

class Employee: def __init__(self, name): self.name = name class Workers: def __init__(self): self.__data = [] def __len__(self): return len(self.__data) def add(self, employee): self.__data.append(employee)

Добавим двух сотрудников и проверим длину:

workers = Workers() workers.add(Employee('john')) workers.add(Employee('smit')) print(len(workers)) # выведет 2

Сделайте класс Numbers с методом __len__. Пусть внутри хранится список из трех чисел.

Сделайте класс Workers со списком сотрудников и методом __len__.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить