Курс 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. Введение в PyTorch
  3. Defaultdict в Python
  4. Параллельные вычисления в Python
  5. Метод enumerate() в Python
  6. Работа с каталогами в Python
  7. Упрощенный вывод данных в Python
  8. Работа с комплексными числами
  9. Docstring в Python
  10. Конвертация изображений в PDF
  11. Повторение элементов в Python
  12. Работа с YAML в Python: PyYAML.
  13. Перегрузка операторов в Python
  14. Установка random seed в Python
  15. Бесконечная проверка в Python
  16. Работа с zip()
  17. Управление сессиями в Python
  18. Настройка шрифта и цвета в Tkinter
  19. Передача неизвестных аргументов в Python.
  20. Дефолтные параметры в Python
  21. Тернарный оператор в Python
  22. Нахождение пересечения множеств
  23. Установка и использование howdoi
  24. Создание уникального множества
  25. Получение локальных переменных в Python
  26. Создание Telegram-бота на Python
  27. Округление в Python
  28. Преобразование символов с помощью map
  29. Python: библиотеки и функции
  30. UserString в Python
  31. Создание словаря с значением по умолчанию
  32. split() — разделение строки
  33. Взаимодействие с sys
  34. Оптимизация строк в Python
  35. Работа со списками
  36. Работа с множествами в Python
  37. Уникальность ключей в словаре
  38. Работа с утверждениями в Python
  39. Метод getitem для доступа к элементам последовательности
  40. Область видимости переменных
  41. Метод __float__ в Python
  42. Группы исключений в Python
  43. Оператор zip в Python
  44. Блок else в циклах Python
  45. Работа с часовыми поясами в Python.
  46. Подсказки при вводе данных в Python
  47. Хранение данных с помощью dataclasses

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