Курс 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. Переопределение унарных операторов
  2. Работа с комплексными числами
  3. Работа с NumPy массивами
  4. Очистка данных с помощью pandas
  5. Пустой оператор pass в Python
  6. Анализ текста на русском языке с помощью Pymystem3
  7. Работа с YAML в Python
  8. Сравнение def и lambda функций в Python
  9. Выборка чисел
  10. Разбиение строки в Python
  11. Объединение списков в Python
  12. Равенство и идентичность в Python
  13. Передача аргументов через **arguments
  14. Операторы объединения в Python 3.9
  15. Mad Libs Generator
  16. Оператор «not» в Python
  17. Передача аргументов в Python
  18. Многострочные строки в Python
  19. Управление ресурсами в Python
  20. Метод __iand__ для пользовательских классов
  21. Основы работы с os
  22. Отладка кода
  23. Функция reduce() в Python
  24. Использование модуля __future__
  25. Анализ кода — Python
  26. Удаление дубликатов в pandas
  27. Функции в Python: создание и вызов
  28. Работа с SQLite в Python
  29. Работа с PosixPath() в Python
  30. Исключение NotImplementedError
  31. Объединение множеств в Python
  32. Множества и frozenset
  33. Выключение компьютера с помощью Python
  34. Вставка переменных в шаблоны Flask
  35. Избегайте пустого списка
  36. Python: отличительная особенность — отступы
  37. Создание и использование модулей в Python
  38. Цепные операции в Python
  39. Сортировка с параметром key
  40. Функция enumerate в Python
  41. Оболочка Python
  42. Скрытие вывода данных
  43. Генерация QR-кодов с Python
  44. Основы Python за 14 дней
  45. Хэш-функции в Python
  46. Замена подстроки
  47. Команда %dhist — список посещенных каталогов
  48. Enum в Python

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