Курс 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"
- Атрибуты класса и экземпляра в Python
- Участие в LP стейкинге Waves
- Переворот списка в Python
- Синхронизация потоков с time.sleep()
- Numpy: использование Ellipsis
- Сортировка с параметром key
- Логический оператор «and» в Python
- Хеши в Python
- Группировка элементов Python
- Работа с zip()
- Наследование в программировании
- Конвертация текстовых чисел с помощью Numerizer
- Измерение времени выполнения в Python
- Оператор «or» в Python
- Пропуск начальных строк с помощью dropwhile()
- Реализация метода __abs__ в Python
- Извлечение новостей с newspaper3k
- Быстрый поиск кода
- Удаление URL-адресов в Python
- Подсчет вхождений элементов
- Создание новых функций с помощью functools.partial
- Метод join() для объединения элементов в строку.
- Оператор is в Python
- Создание функций с произвольным количеством аргументов
- Библиотека sh: удобные команды терминала
- Antigravity модуль
- Итерация по коллекции в Python
- Документация функции help() в Python
- Работа с множествами в Python
- Ошибка NotImplemented в Python
- Настройка вывода NumPy
- Фильтрация списков с itertools
- Список импортированных модулей в Python
- Импорт с альтернативным именем
- Регулярные выражения в Python
- Декораторы в Python
- Вставка переменных в шаблоны Flask
- Преобразование строк в числа с плавающей запятой
- Печать месячного календаря
- Группы исключений в Python
- Расчет времени выполнения
- Константы в модуле cmath
- Метод split() для разделения строк
- Работа с процессами в Python
- Импорт модулей в Python 3.12
- Поиск подстроки в строке
- Python OrderedDict и fromkeys() — работа с словарями















