Курс 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. Модуль math: основные функции
  3. Изменение IP-адреса в Python
  4. Экспорт функций в Python
  5. Обмен переменными в Jupyter
  6. Python Метод Union Множеств
  7. Работа с срезами в Python
  8. Оптимизация строк в Python
  9. Импорт с альтернативным именем
  10. Получение комбинаций в Python
  11. Атрибуты массивов в Numpy
  12. Добавление элементов в список: append() vs extend()
  13. Numpy: объединение массивов
  14. Парсинг статей с Newspaper3k
  15. Подсчет элементов с помощью Counter
  16. Область видимости переменных
  17. Проверка однородности элементов списка
  18. Преобразование букв в нижний регистр
  19. Управление IP-адресами через прокси
  20. Функциональное программирование в Python
  21. Использование html-скриптов в Jupyter Notebook
  22. Создание итератора
  23. Условное добавление элементов в список
  24. Присоединение элементов коллекции
  25. Применение функции map() с лямбда-функциями
  26. Работа с itertools
  27. Функции range() в Python
  28. Импорт объектов из модулей
  29. Динамическая типизация в Python
  30. Виртуальное окружение Python
  31. Наиболее частотные элементы с помощью Counter
  32. Генераторы списков
  33. Concrete Paths в Python
  34. Оператор деления для класса Rational
  35. Модуль itertools: эффективная работа с итераторами
  36. Создание словаря с значением по умолчанию
  37. Работа с кортежами в Python
  38. Проверка элемента в множестве.
  39. Декораторы в Python
  40. Установка Git и AWS CLI
  41. Отправка POST запроса на сервер.
  42. Python: Фильтрация списков с помощью filter()
  43. Метод clear для коллекций
  44. Функция zip() в Python
  45. Блок try-except-else
  46. Печать списка с помощью метода join
  47. Python-dateutil — работа с датами
  48. Очистка данных с Pandas
  49. Функция reduce() из модуля functools

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