Русский
Открыть в Telegram

Пост В Python оператор квадратных скобок [] можно переопределить, реализовав магический метод __getitem__. Это позволяет, нап…

23 марта 2026
Б
Библиотека Python разработчика | Книги по питону
В Python оператор квадратных скобок [] можно переопределить, реализовав магический метод __getitem__. Это позволяет, например, создать объект, который виртуально содержит бесконечное количество повторяющихся элементов: class Cycle: def __init__(self, lst): self._lst = lst def __getitem__(self, index): return self._lst[index % len(self._lst)] print(Cycle(['a', 'b', 'c'])[100]) # 'b' Необычность оператора [] в Python в том, что он поддерживает особый синтаксис. Его можно использовать не только так: [2], но и так: [2:10], [2:10:2], [2::2] или даже [:]. Смысл такой записи — [start:stop:step], но в ваших собственных объектах вы можете использовать этот синтаксис как угодно. Что же передаётся в __getitem__ в таких случаях? Объекты slice созданы специально для этого. Пример: class Inspector: def __getitem__(self, index): print(index) Inspector()[1] # 1 Inspector()[1:2] # slice(1, 2, None) Inspector()[1:2:3] # slice(1, 2, 3) Inspector()[:] # slice(None, None, None) Inspector()[:, 0, :] # (slice(None, None, None), 0, slice(None, None, None)) Объект slice сам по себе ничего не делает — он просто хранит атрибуты start, stop и step: s = slice(1, 2, 3) print(s.start) # 1 print(s.stop) # 2 print(s.step) # 3 📲 Мы в MAX 👉@BookPython
7 · 1.7K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуСуществует два понятия с похожими названиями, которые легко перепутать: переопределение (overriding) и перегрузка (overloading). Переопределение происходит, когББиблиотека Python разработчика | Книги по питону🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.ru/i_odmin Все для системного администратора https://max.ru/bash_srv Bash
это сообщение
ББиблиотека Python разработчика | Книги по питонуИногда возникает необходимость выполнить участок кода и проигнорировать все возможные исключения. Это оправдано в случае с плагинами, сторонними модулями и другББиблиотека Python разработчика | Книги по питонуВ Python имя переменной может состоять из одного символа подчёркивания: _. Хотя такие имена обычно недостаточно описательны и их не стоит использовать, существу
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 943подписчиков725средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем