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

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

10 июля 2026
Б
Библиотека Python разработчика | Книги по питону
В Python вы можете переопределить оператор квадратных скобок ([]), определив магический метод getitem. Примером может быть объект Cycle, который виртуально содержит бесконечное количество повторяющихся элементов: 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]) # prints 'b' Необычность здесь заключается в том, что оператор [] поддерживает уникальный синтаксис. Он может использоваться не только так — [2], но и так — [2:10], или [2:10:2], или [2::2], или даже [:]. Семантика — [start:stop:step], но вы можете применять её так, как вам нужно, для ваших собственных объектов. Но что же получает getitem в качестве параметра index, если использовать этот синтаксис? Для этого существуют объекты slice. In : class Inspector: ...: def __getitem__(self, index): ...: print(index) ...: In : Inspector()[1] 1 In : Inspector()[1:2] slice(1, 2, None) In : Inspector()[1:2:3] slice(1, 2, 3) In : Inspector()[:] slice(None, None, None) Вы даже можете комбинировать синтаксис кортежей и срезов: In : Inspector()[:, 0, :] (slice(None, None, None), 0, slice(None, None, None)) Slice не делает ничего, кроме как просто хранит атрибуты start, stop и step. In : s = slice(1, 2, 3) In : s.start Out: 1 In : s.stop Out: 2 In : s.step Out: 3 📲 Мы в MAX 👉@BookPython
2 · 1.4K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуФункция enumerate Эта встроенная функция снабжает циклы счётчиком. Возвращает генераторный объект, который имеет метод, вызываемый встроенной функцией next: на ББиблиотека Python разработчика | Книги по питонуВредные советы python разработчику l=[['a', 'b', 'c'], ['1', '2'], ['#']] sum(l, []) В Python можно выпрямить вложенные списки с помощью... функции sum(). Вот к
это сообщение
ББиблиотека Python разработчика | Книги по питонуЧто такое контекстный менеджер в Python? Контекстный менеджер в Python - это специальный тип объекта, который определяет методы enter() и exit() и используется ББиблиотека Python разработчика | Книги по питонуЕсли вы хотите игнорировать какое-то исключение, вы, вероятно, сделаете что-то вроде этого: try: lst = [1, 2, 3, 4, 5] print(lst[10]) except IndexError: pass Эт
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 954подписчиков552средний охват поста
Лента площадки Открыть в Telegram

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

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