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

Пост Как __getitem__ превращает объект Python в итерируемый

23 сентября 2026
Z
Zen of Python
Фотография
нажмите — покажем
Как __getitem__ превращает объект Python в итерируемый Для цикла for объекту не всегда нужен __iter__. Если класс принимает целые индексы от 0, Python последовательно запрашивает элементы с индексами 0, 1, 2 и так далее. Получив IndexError, интерпретатор считает последовательность законченной. В примере из статьи арифметическая последовательность вычисляет элемент по формуле прямо в __getitem__: seq[3] возвращает 14, а тот же объект без дополнительного метода работает в цикле. Проверять поддержку целочисленных индексов заранее Python не станет. Поэтому обёртка над словарём выдаёт значения для ключей 0 и 1, а на ключе 2 падает с KeyError: эта ошибка не означает конец итерации. Механику и код можно посмотреть в статье Indexable iterables.
6 · 1.3K ·

Рядом в ленте

ZZen of PythonPyodide разрешил публиковать WASM-колёса прямо в PyPI В Pyodide 314.0 появилась прямая публикация пакетов для WebAssembly в PyPI. Раньше команда сама собирала иZZen of PythonЧто меняет re.prefixmatch() в Python 3.15 re.match() проверяет совпадение только в начале строки. Поэтому шаблон из шести цифр принимает и 345071-in-abbey-wood:
это сообщение
ZZen of PythonКак запустить урезанный Python в браузерной песочнице Monty от Pydantic исполняет небольшой Python-подобный язык внутри приложения. Интерпретатор написан на RusZZen of PythonКак исправить вызов NamedTuple в Python 3.15 В Python 3.15 больше не поддерживается создание NamedTuple через именованные аргументы полей. В версиях 3.13 и 3.14

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

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