Курс 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. Метод enumerate() в Python
  2. Создание генераторов в Python
  3. Concrete Paths — метод .with_suffix()
  4. Работа с f-строками 2.0
  5. Обучение модели с указанием эпох
  6. Обновление ключей в Python
  7. Работа с аргументами командной строки в Python
  8. Выражения-генераторы в Python
  9. Работа с WindowsPath()
  10. Метод pos в Python
  11. Установка и использование TensorFlow
  12. Переменные в Python: сокращение гласных
  13. Работа с множествами в Python
  14. Сортировка слиянием
  15. Сохранение Unicode в JSON
  16. Работа с кортежами в Python
  17. Создание виртуальной среды
  18. Преобразование числа в список цифр
  19. Основные операции с Numpy
  20. Логирование с Logzero
  21. Работа с геоданными с помощью geopy
  22. Генерация QR-кодов с Python
  23. Поиск индекса элемента
  24. Распаковка элементов массива
  25. Метод hash в Python
  26. Профилирование кода на Python
  27. Numpy: разбиение массивов
  28. Преобразование документов в PDF с помощью Spire.Office
  29. Форматирование строк в Python
  30. Обработка ошибки IndexError
  31. Работа со строками в Python
  32. Создание словаря с значением по умолчанию
  33. Функции в Python: создание и вызов
  34. Форматирование данных с помощью pprint
  35. Метод rename() для переименования файлов и каталогов
  36. Измерение времени выполнения кода
  37. Отрицательные индексы списков в Python
  38. Обмен значений переменных в Python
  39. Сериализация и десериализация объектов
  40. Замена переменных в Python
  41. Атрибуты класса и экземпляра в Python
  42. Создание пар из последовательностей

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