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

Получение элемента коллекции в ООП в Python

Доступ к элементу по индексу в квадратных скобках перехватывает метод __getitem__. Python передает в него индекс, а метод должен вернуть элемент из внутреннего списка.

Давайте добавим __getitem__ к классу с числами:

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

Создадим объект и прочитаем элементы по индексам:

nums = Numbers() print(nums[0]) # выведет 1 print(nums[1]) # выведет 2 print(nums[2]) # выведет 3

Можно обращаться с отрицательным индексом, как у обычного списка:

print(nums[-1]) # выведет 3

Сделаем коллекцию сотрудников с тем же методом:

class Employee: def __init__(self, name): self.name = name class Workers: def __init__(self): self.__data = [ Employee('john'), Employee('smit'), ] def __getitem__(self, index): return self.__data[index]

Получим первого сотрудника и выведем имя:

workers = Workers() print(workers[0].name) # выведет 'john'

Добавьте __getitem__ в класс Numbers.

Сделайте класс Workers с __getitem__. По индексу должен возвращаться объект Employee.

Выведите имя второго сотрудника из объекта Workers через доступ по индексу.

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