Курс Python → Метод getitem для доступа к элементам последовательности

Метод getitem в Python используется для доступа к элементам последовательности по их ключу или индексу. Когда мы обращаемся к элементу в последовательности, Python вызывает этот метод для получения значения по указанному ключу. В случае, если мы используем некорректный тип ключа, например строку вместо целого числа, метод должен выбросить исключение TypeError.

Если ключ, переданный методу getitem, не соответствует ни одному элементу в последовательности, то метод должен вызвать исключение KeyError. Это происходит, например, когда мы пытаемся получить доступ к элементу по ключу, которого нет в словаре или по индексу, который выходит за пределы списка.

Для более наглядного понимания работы метода getitem давайте рассмотрим пример. Предположим, у нас есть список fruits = ['apple', 'banana', 'orange']. Если мы вызовем fruits[0], то Python фактически вызовет метод getitem для списка fruits и передаст ему ключ 0, чтобы получить значение ‘apple’.

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

    def __getitem__(self, key):
        if not isinstance(key, int):
            raise TypeError("Ключ должен быть целым числом")
        if key >= len(self.data) or key < -len(self.data):
            raise KeyError("Нет элемента с таким ключом")
        return self.data[key]

# Пример использования
seq = MySequence(['a', 'b', 'c'])
print(seq[1])  # Выведет 'b'
print(seq[3])  # Вызовет KeyError

В данном примере мы создали собственный класс MySequence, в котором переопределили метод getitem. Мы проверяем тип ключа и его корректность, выбрасывая соответствующие исключения в случае ошибок. Затем мы возвращаем значение элемента по ключу из внутреннего списка data.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. inspect в Python: анализ кода
  2. Установка и использование howdoi
  3. Numpy: использование Ellipsis
  4. Использование type hints
  5. Активация Matplotlib в Jupyter
  6. Контекстный менеджер в Python
  7. TON Smart Challenge #2: участие и подготовка
  8. Зарезервированные слова в Python
  9. Объединение кортежей в Python
  10. Сравнение def и lambda в Python
  11. Поиск самого частого элемента
  12. Метод join() для объединения элементов строки
  13. Методы shutil для работы с файлами
  14. Оператор * в Python
  15. Удаление знаков препинания в Python
  16. Перезагрузка оператора в Python
  17. Работа с файлами в Python
  18. discard() — удаление элемента из множества
  19. Хешируемые ключи в Python
  20. Метод join() с набором
  21. Установка и использование модуля Wikipedia
  22. Проблема с изменяемыми аргументами
  23. Создание коллекций из выражения-генератора
  24. Удаление дубликатов из списка с помощью dict.fromkeys
  25. Метод clear для коллекций
  26. Поиск самого длинного слова в списке с использованием max()
  27. Передача словаря через **kwargs
  28. Выборка чисел
  29. Работа с датами в Python
  30. Утечки переменных цикла в Python 3.x
  31. Списковые включения в Python
  32. Оптимизация параметров в Python
  33. Открытие и редактирование скриптов Python
  34. Динамическая типизация в Python
  35. Подсчет элементов в Python
  36. Функции all() и any() в Python
  37. F-строки в Python 3.8
  38. Курс по дообучению ChatGPT
  39. Работа с дробями в Python
  40. Многострочные комментарии в Python
  41. Метод split() в Python
  42. Очистка входных данных
  43. Кортеж в Python: создание, доступ, изменение
  44. Улучшение читаемости кода в Python
  45. Установка и использование Virtualenv

Marketello читают маркетологи из крутых компаний