Курс 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. Работа с массивами в Python
  3. Метод append() для списка
  4. Работа с очередями в Python
  5. Компиляция регулярных выражений
  6. Нахождение максимального значения и его индекса в списке
  7. Преобразование данных в Python
  8. Бесконечные списки в Python
  9. Сортировка данных с лямбда-функциями
  10. Работа с collections в Python.
  11. Monkey Patching в Python
  12. Вычисление логарифмов в Python
  13. JSON-esque в Python
  14. Необязательные аргументы в Python
  15. Срезы в Python
  16. Работа с YAML в Python: PyYAML.
  17. Хеширование паролей с солью
  18. Генераторы в Python
  19. Распаковка аргументов в Python
  20. Отслеживание выполнения программы с библиотекой tqdm
  21. Условные выражения в Python
  22. Преобразование числа в восьмеричную строку
  23. Установка Python3.7 и PIP
  24. Библиотека wikipedia для Python
  25. Colorama: окрашивание текста в Python
  26. Поиск HTML-элементов с BeautifulSoup
  27. Нахождение пересечения множеств
  28. Структура данных deque в Python
  29. Приближение чисел в Python
  30. Итераторы в Python
  31. Дефолтные параметры в Python
  32. Преобразование PowerPoint в PDF.
  33. Объединение Python и Shell
  34. Оператор continue в Python
  35. Выборка чисел
  36. Сравнение строк в Python
  37. Сглаживание списка
  38. Метод repr() в Python
  39. Контекстный менеджер в Python
  40. Утечки переменных цикла в Python 3.x
  41. Многострочные комментарии в Python
  42. Явный импорт в Python
  43. Progress с библиотекой tqdm
  44. Символ подчеркивания в Python
  45. Запуск внешних программ с subprocess
  46. Декораторы в Python

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