Курс 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. Проверка дублей в списке.
  2. Создание графики с черепахой
  3. Переопределение оператора % для объектов
  4. Обмен значений переменных в Python
  5. Создание генераторов
  6. Копирование в Python
  7. Метод pop() списка
  8. Метод init в Python
  9. Изменяемые и неизменяемые объекты
  10. Профилирование с cProfile
  11. EMOT преобразование эмодзи в текст
  12. Функция enumerate в Python
  13. Запуск внешних программ с subprocess
  14. Эффективная конкатенация строк с использованием join()
  15. Списки в Python
  16. Проверка подстроки в строке
  17. Итераторы с потерямиZIP
  18. Функция zip() — объединение последовательностей
  19. Перезагрузка оператора в Python
  20. Работа с необработанными строками
  21. Форматирование объектов с модулем pprint
  22. Форматирование строк в Python.
  23. Метод get() для словарей
  24. Преобразование объекта в строку
  25. Перевернуть список в Python
  26. Работа с переменными в Python
  27. Применение функции к каждому элементу списка
  28. Обновление шаблона base.html
  29. Группировка элементов в словарь
  30. Работа с WindowsPath()
  31. Работа с файлами в Python
  32. Получение идентификатора объекта в памяти
  33. Очистка входных данных
  34. Декоратор Property в Python
  35. Flask: создание веб-приложений
  36. Аннотации типов в Python
  37. Создание директории в Python
  38. Пространство имен в Python
  39. Объединение словарей в Python
  40. PATCH-запрос с библиотекой requests
  41. Оператор деления для класса Rational
  42. Управление пакетами с pip
  43. Списки в Python: синтаксис представления
  44. Тестирование с responses
  45. Функция с **kwargs в Python
  46. Удаление символа из строки

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