Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: sequence, indexing

Какой метод нужно реализовать, чтобы последовательность поддерживала доступ к элементам по индексу?

Вопрос проверяет знание механизма доступа к элементам объекта по индексу и протокола последовательностей.

Короткий ответ

Для поддержки доступа по индексу нужно реализовать метод __getitem__(self, index). Этот метод вызывается, когда используется синтаксис obj[index]. Он должен возвращать элемент по индексу или выбрасывать IndexError, если индекс выходит за пределы.

Длинный ответ

Как работает доступ по индексу

Когда в Python используется выражение:

value = obj[2]

Интерпретатор фактически вызывает:

obj.__getitem__(2)

Поэтому достаточно реализовать этот метод, чтобы объект начал поддерживать индексирование.

Пример реализации

class MyList:
    def __init__(self, data):
        self.data = data

    def __getitem__(self, index):
        return self.data[index]

Теперь:

lst = MyList([10, 20, 30])
print(lst[1])  # 20

Дополнительные возможности

Метод __getitem__ может принимать:

  • целые индексы

  • срезы (slice)

Пример обработки срезов:

def __getitem__(self, index):
    return self.data[index]

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

Вывод

Метод __getitem__ является основным механизмом доступа к элементам последовательности. Его реализация делает объект похожим на список или кортеж и позволяет использовать стандартный синтаксис индексирования.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Python

    Python

Ключевые слова

#sequence

#indexing

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.