Курс 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. Функции высшего порядка в Python
  3. Сортировка и обратный порядок
  4. Хэш-функции в Python
  5. Преобразование текста в речь с Python
  6. Получение имени функции с помощью inspect
  7. Colorama: окрашивание текста в Python
  8. Класс UserDict: дополнительная функциональность
  9. Использование эмодзи в Python
  10. Lambda Functions in Python
  11. Капитализация строк
  12. Список импортированных модулей в Python
  13. Отправка HTTP-запросов в Python
  14. Избегание циклических зависимостей классов в Python
  15. Проверка подстроки в строке
  16. Игра «Виселица» на Python
  17. Оператор морж в Python 3.8
  18. Многопроцессорное программирование в Python
  19. Работа с переменными в Python
  20. Генераторы в Python
  21. Работа с исключениями в Python
  22. Генерация QR-кодов с Python
  23. Склеивание строк через метод join()
  24. Метод matmul для умножения матриц
  25. Преобразование типов данных в set comprehension
  26. Генераторы в Python
  27. Numpy: объединение массивов
  28. Создание таблиц в Python с PrettyTable
  29. Транспонирование 2D-массива с помощью zip
  30. Основы работы со списками
  31. Установка и использование pyshorteners
  32. GitHub в Telegram: подписка на уведомления
  33. Создание пар из последовательностей
  34. Группы исключений в Python
  35. Работа с индексами списков
  36. Работа со словарями в Python
  37. Функция enumerate() в Python
  38. Введение в PyTorch
  39. Python: динамическая типизация и проверка типов
  40. Работа с WindowsPath()
  41. Метод enumerate() в Python
  42. Метод join() для объединения элементов
  43. Декораторы в Python
  44. Установка и использование Virtualenv

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