Курс 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. Создание панели меню Tkinter
  3. Лимиты на ресурсы Python
  4. Defaultdict в Python
  5. Статическая типизация в Python
  6. Вывод переменной и строки в Python
  7. Перегрузка операторов в Python
  8. split() — разделение строки
  9. Вывод с переменной через запятую
  10. Возвращение нескольких значений через кортеж или класс
  11. Отладка в Python
  12. Оператор «is not» в Python
  13. Инвертирование словаря
  14. Создание матрицы в Python
  15. Работа с Enum в Python3.
  16. Асинхронное выполнение задач в процессах
  17. Запуск внешнего кода в Jupyter
  18. Отношения подклассов в Python
  19. Переменные класса и экземпляра
  20. Создание циклической ссылки
  21. Создание словаря с значением по умолчанию
  22. Передача аргументов через **arguments
  23. Создание уникального проекта
  24. Отправка HTTP-запросов в Python
  25. Фильтрация данных в Python.
  26. Операторы += в Python
  27. Генератор надежных паролей
  28. Оценка выражений генератора в Python
  29. Изменения в обработке логических значений
  30. Обучение модели с указанием эпох
  31. Обработка исключений
  32. Циклы for в Python
  33. Оператор is в Python
  34. UserString в Python
  35. Фильтрация входных данных в Python
  36. Проверка однородности элементов списка
  37. Работа с CSV файлами в Python
  38. Функция rsplit() в Python
  39. Многопоточность в Python
  40. Импорт модулей в Python 3.12
  41. Переворот списка в Python
  42. Методы classmethod и staticmethod
  43. Принципы SRP и OCP
  44. Проблемы с именами переменных
  45. Хранение данных
  46. Работа с zip()
  47. Использование функции product

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