Курс 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. Встраивание HTML в Jupyter Notebook
  3. Создание копии списка в Python
  4. Нахождение самого длинного слова в списке с помощью max
  5. Установка и использование модуля «howdoi»
  6. Преобразование PowerPoint в PDF.
  7. Создание объекта времени
  8. Создание пар из последовательностей
  9. Декоратор total_ordering для сравнения объектов
  10. Выражения-генераторы в Python
  11. Переопределение метода sub
  12. Срез в Python
  13. kwargs в Python
  14. TON Smart Challenge #2: участие и подготовка
  15. Поиск повторов в списке
  16. Копирование файлов с shutil()
  17. Эффективная конкатенация строк в Python
  18. Импорт в Python: список all
  19. Проверка версии Python
  20. Копирование объектов в Python
  21. Работа с комбинациями в Python.
  22. Переопределение метода __rshift__
  23. Многопроцессорное программирование в Python
  24. Область видимости переменных в Python
  25. Получение локальных переменных в Python
  26. Профилирование данных с Pandas.
  27. Нахождение разницы между списками в Python
  28. Функциональное программирование.
  29. Создание именованных кортежей в Python
  30. Методы split() и join() — Python строк.
  31. Генераторные функции в Python
  32. Работа с deque из collections
  33. Функции в Python: создание и вызов
  34. Инициализация переменных
  35. Использование модуля math
  36. Поиск индекса элемента в списке
  37. Генераторы в Python
  38. Изменение IP-адреса в Python
  39. Освобождение памяти в Python
  40. Руководство по использованию Colorama
  41. Основные функции и модули Python
  42. Оператор умножения для вектора
  43. Капитализация строк
  44. Динамические маршруты во Flask
  45. Enum в Python: создание и использование перечислений
  46. Использование подчеркивания в REPL
  47. Импорт и использование модулей в Python
  48. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  49. Комплексные числа в Python

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