Курс 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"

  1. Атрибуты класса и экземпляра в Python
  2. Участие в LP стейкинге Waves
  3. Переворот списка в Python
  4. Синхронизация потоков с time.sleep()
  5. Numpy: использование Ellipsis
  6. Сортировка с параметром key
  7. Логический оператор «and» в Python
  8. Хеши в Python
  9. Группировка элементов Python
  10. Работа с zip()
  11. Наследование в программировании
  12. Конвертация текстовых чисел с помощью Numerizer
  13. Измерение времени выполнения в Python
  14. Оператор «or» в Python
  15. Пропуск начальных строк с помощью dropwhile()
  16. Реализация метода __abs__ в Python
  17. Извлечение новостей с newspaper3k
  18. Быстрый поиск кода
  19. Удаление URL-адресов в Python
  20. Подсчет вхождений элементов
  21. Создание новых функций с помощью functools.partial
  22. Метод join() для объединения элементов в строку.
  23. Оператор is в Python
  24. Создание функций с произвольным количеством аргументов
  25. Библиотека sh: удобные команды терминала
  26. Antigravity модуль
  27. Итерация по коллекции в Python
  28. Документация функции help() в Python
  29. Работа с множествами в Python
  30. Ошибка NotImplemented в Python
  31. Настройка вывода NumPy
  32. Фильтрация списков с itertools
  33. Список импортированных модулей в Python
  34. Импорт с альтернативным именем
  35. Регулярные выражения в Python
  36. Декораторы в Python
  37. Вставка переменных в шаблоны Flask
  38. Преобразование строк в числа с плавающей запятой
  39. Печать месячного календаря
  40. Группы исключений в Python
  41. Расчет времени выполнения
  42. Константы в модуле cmath
  43. Метод split() для разделения строк
  44. Работа с процессами в Python
  45. Импорт модулей в Python 3.12
  46. Поиск подстроки в строке
  47. Python OrderedDict и fromkeys() — работа с словарями

Marketello читают маркетологи из крутых компаний