Курс 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. Оболочка Python
  2. Метод Self в Python
  3. Управление мышью и клавиатурой с Pyautogui
  4. Управление фоновыми задачами в Python
  5. Именованные кортежи в Python
  6. Python Поверхностное Копирование
  7. Преобразование чисел в восьмеричную строку
  8. Рекурсия для обращения строки
  9. Импорт модулей в Python 3.12
  10. Установка Git и AWS CLI
  11. Работа с часовыми поясами в Python
  12. Методы shutil для работы с файлами
  13. Поиск наиболее частого элемента списке
  14. Основные функции и модули Python
  15. Логические значения в Python
  16. Проверка на истинность объектов в Python
  17. Изменение логики работы с временем
  18. Особенности запятых в Python
  19. Python Аргументы по умолчанию
  20. Повторение и перенос строки
  21. Замена текста с помощью sub
  22. Инверсия списка/строки в Python
  23. Генераторы списков
  24. Добавление элемента к кортежу
  25. Оператор объединения словарей
  26. Работа с deque в Python
  27. Установка максимального количества цифр
  28. Оператор walrus в Python
  29. Flask — веб-фреймворк Python
  30. Простой калькулятор Python
  31. Абстракции словарей и множеств в Python
  32. Defaultdict в Python
  33. Операции с кортежами
  34. Удаление элементов из списка в Python.
  35. Курс по дообучению ChatGPT
  36. Работа с асинхронными задачами в Python
  37. Переворот строки с помощью срезов
  38. Шаблоны и наследование в Flask
  39. Печать календаря
  40. Настройка вывода NumPy
  41. Структура данных словарь в Python
  42. Каналы Senior: Python, Java, Frontend, SQL, C++
  43. Кортеж в Python: создание, доступ, изменение
  44. Преобразование чисел в слова
  45. Вычисление натурального логарифма в NumPy
  46. Работа с itertools
  47. Область видимости переменных в Python

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