Python Glossary English

все Python 3ООПфункция

__getitem__

магические методы

Метод чтения по индексу или ключу: obj[k] вызывает obj.__getitem__(k). Срез приходит объектом slice.

Синтаксис

def __getitem__(self, key): ...

Одного __getitem__ с целыми индексами хватает, чтобы объект стал итерируемым: for перебирает 0, 1, 2… до IndexError. Для отображений принято бросать KeyError, для последовательностей — IndexError: на этом различии держатся dict.get и итерация. Запись obj[1:3] передаёт slice(1, 3, None).

Примеры

class Squares:
    def __getitem__(self, i):
        if i >= 5:
            raise IndexError(i)
        return i * i
s = Squares()
print(s[3])  # → 9
print(list(s))  # → [0, 1, 4, 9, 16] — итерация через __getitem__
class Show:
    def __getitem__(self, key):
        return key
print(Show()[1:3])  # → slice(1, 3, None)

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности