Курс Python → Создание итерируемых объектов
Для создания собственных итерируемых объектов в Python, можно использовать классы и специальные методы, такие как метод iter. Например, в данном примере у нас есть класс Squares, который реализует метод iter(self), возвращающий итератор. Итератор — это объект, который поддерживает метод next() и используется для итерации по последовательности значений.
При использовании цикла for для объекта squares, интерпретатор Python вызывает метод iter для получения итератора, а затем последовательно вызывает метод next до возникновения исключения StopIteration. Метод iter возвращает сам объект, так как он также является итератором.
Это удобно, когда мы создаем объекты, которые могут быть использованы в циклах for или других контекстах, требующих итерации. Таким образом, мы можем использовать наши собственные итерируемые объекты в стандартных итерационных конструкциях и управлять процессом итерации с помощью методов iter и next.
class Squares:
def __init__(self, n):
self.n = n
self.i = 0
def __iter__(self):
return self
def __next__(self):
if self.i < self.n:
result = self.i ** 2
self.i += 1
return result
else:
raise StopIteration
В приведенном выше примере кода класс Squares реализует методы __iter__ и __next__ для создания итератора, который возвращает квадраты чисел от 0 до n. Теперь мы можем создать объект этого класса и использовать его в цикле for для итерации по значениям квадратов чисел.
Другие уроки курса "Python"
- Функция __init__ в Python
- Python Аргументы по умолчанию
- Python 3.12: Псевдонимы типов
- Модуль xkcd: добавление юмора в Python
- Очистка данных в Python
- Создание вложенного генератора
- Пропуск строк в файле с itertools
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Объединение списков с помощью zip
- Оптимизация памяти с __slots__
- Логирование в Python
- Функция all() в Python
- Работа с JSON данными в Python
- Замыкания в Python
- Декоратор total_ordering для класса Point
- Склеивание строк без циклов
- Оптимизация сравнения в Python
- Форматирование данных с помощью pprint
- Хранение данных
- Деление в Python
- Генерация строк с .join()
- Counter() — подсчет элементов
- Docstring в Python
- Получение обратного списка чисел
- Сортировка элементов в Python
- Итерация по коллекции в Python
- Метод join() для объединения элементов в строку.
- Преобразование чисел в восьмеричную строку
- Получение текущей даты в Python
- Получение комбинаций в Python
- Сравнение def и lambda-функций
- Искажение имен в Python
- Метод __index__ в Python
- Нарезка списков в Python
- Генераторы в Python
- Отладчик pdb: начало работы
- Форматирование объектов с модулем pprint
- Структура данных deque в Python
- Удаление файлов в Python
- Метод __irshift__ для Python
- Установка и использование Python-dateutil
- Оператор assert в Python
- Переопределение метода __pow__















