Курс 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. Отслеживание прогресса с tqdm
  2. ROT13 Шифр Цезаря в Python
  3. Принципы LSP и ISP в Python
  4. Удаление файлов и папок в Python
  5. Оформление текста в консоли с TermColor
  6. Оператор «or» в Python
  7. Генерация UUID в Python
  8. Сортировка в Python
  9. Просмотр файла в Jupyter Noteboo
  10. Создание виртуальной среды
  11. Структура данных deque в Python
  12. Solidity для DeFi Ethereum
  13. Создание OrderedDict
  14. Автоматизация скриптов на AWS Lightsail.
  15. Очистка данных с Pandas
  16. Просмотр внешнего файла в Python
  17. Экранирование символов в Python
  18. Виртуальные среды в Python
  19. Очистка входных данных
  20. Python Translator: создание локальных переводчиков
  21. Оптимизация памяти с slots
  22. Проверка списка: any() и all()
  23. Безопасные SQL-запросы в Python 3.11
  24. Обновление ключей в Python
  25. f-строки в формате строк
  26. Функция enumerate в Python
  27. Метод enumerate() в Python
  28. Замена символов в Python
  29. Транспонирование 2D-массива с помощью zip
  30. Создание задания в Cron
  31. Генераторы в Python
  32. Подсчет элементов в Python
  33. Функция enumerate() — Python
  34. Работа с модулем os в Python
  35. Копирование объектов в Python
  36. Возврат нескольких значений из функции
  37. Создание генераторов в Python
  38. Перевод эмодзи и эмотиконов.
  39. Динамические маршруты во Flask
  40. Класс Counter() для подсчета элементов
  41. Установка и использование howdoi
  42. Обработка ошибки IndexError
  43. Комментарии в Python
  44. Склеивание строк без циклов
  45. Работа с итераторами в Python
  46. Метод join() для объединения элементов строки

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