Курс 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. Обработка исключений в Python 3
  4. Определение индекса элемента списка
  5. Перевод текста с Python Translator
  6. Удаление элементов по срезу
  7. Декораторы с аргументами в Python
  8. Codecademy в Telegram
  9. Python Ellipsis использование
  10. Получение частей дроби
  11. f-строки в формате строк
  12. Переопределение метода xor в Python
  13. Оформление кода по PEP 8
  14. Эффективная конкатенация строк с использованием join()
  15. Отладка кода
  16. Отправка поздравлений по дню рождения
  17. Установка и обучение ChatterBot
  18. Удаление ресурса в Python
  19. Преобразование списков в словарь
  20. Работа с изменяемыми коллекциями
  21. UserString в Python
  22. Измерение времени выполнения с помощью time
  23. Очистка входных данных
  24. Сортировка HTML-элементов
  25. Функция enumerate в Python
  26. Определение размера папок в Python
  27. Проверка запуска скрипта или импорта модуля
  28. Порядок и длина множеств в Python
  29. Работа с индексами списков
  30. Сортировка HTML по CSS-селектору
  31. Подчеркивание в REPL
  32. Профилирование с cProfile
  33. Преобразование range в итератор
  34. Подсчет элементов в Python
  35. Возврат нескольких значений
  36. Работа с NumPy массивами
  37. Функции с дополнением
  38. Функция reduce() в Python
  39. Итераторы в Python
  40. Подписка на @SelectelNews
  41. Вывод переменной и строки в Python
  42. Итерация по итерируемым объектам
  43. Функции в одну строку
  44. Тестирование функции сложения
  45. Преобразование вложенного списка
  46. Обход словаря в Python

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