Курс 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. Измерение времени выполнения кода с помощью time
  2. Функция rsplit() в Python
  3. Работа с enumerate()
  4. Конкатенация строк с методом join()
  5. Обработка элементов в Python
  6. Операции с датами в Python
  7. Мониторинг работы программы Py-spy
  8. Вызов функций по строке в Python.
  9. Навыки Python: строки, типы данных
  10. Виртуальные среды в Python
  11. Работа с буфером обмена на Python
  12. Список методов и атрибутов
  13. Библиотека funcy: удобные утилиты
  14. Использование модуля math
  15. Делегирование в Python
  16. Метод getitem для доступа к элементам последовательности
  17. Управление контекстом выполнения кода
  18. Метод count() для списков
  19. Функция reduce() из модуля functools
  20. Преобразование кортежа в словарь.
  21. Методы Python для работы с данными
  22. Работа с JSON данными в Python
  23. Генераторы в Python
  24. Комментарии в Python
  25. Установка User-Agent в Python
  26. Логирование с Logzero
  27. Метод rename() для переименования файлов и каталогов
  28. Работа с файловой системой в Python
  29. Создание коллекций из генератора
  30. Python Менеджер контекста
  31. Метод rsub в Python: расширение функциональности вычитания
  32. Преобразование чисел в слова
  33. Документация функции help() в Python
  34. Конкатенация строк с join() в Python
  35. Безопасный доступ к значениям словаря
  36. Оператор «is not» в Python
  37. Атрибуты класса и экземпляра
  38. Экспорт функций в Python
  39. Группировка элементов в словарь
  40. Логические операторы в Python
  41. Список импортированных модулей в Python
  42. Работа с YAML в Python
  43. Округление дробей в Python
  44. Работа с комплексными числами
  45. Метод enumerate() в Python
  46. Поиск уникальных элементов строкой в Python

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