Курс 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. Codecademy в Telegram
  2. Лямбда-функции в Python
  3. Подсказки типов в Python
  4. Переопределение метода len
  5. Зарезервированные слова в Python
  6. Работа со случайными элементами
  7. Создание новых функций через partial
  8. Возврат нескольких значений
  9. Оператор space-invader
  10. Метод Enumerate() для списков
  11. Создание комплексных чисел
  12. Прокачанный трейсинг ошибок
  13. Преобразование текста в речь с Python
  14. Разрешение имен в Python
  15. Оператор is в Python
  16. Магические методы в Python
  17. Логический оператор «and» в Python
  18. Проверка вхождения подстроки
  19. Создание задания в Cron
  20. Глобальные переменные в Python
  21. Работа с deque из collections
  22. Рекурсия для обращения строки
  23. Изменение логики работы с временем
  24. Создание списка через цикл
  25. Метод lt для сортировки объектов
  26. Замена подстроки
  27. Обработка исключений в Python
  28. Использование super() в Python
  29. Вложенные генераторы в Python
  30. Генераторы в Python
  31. Генераторы в Python
  32. Работа с NumPy массивами
  33. Списковое включение в Python
  34. Создание словарей с defaultdict
  35. Атрибуты класса и экземпляра
  36. Нан-рефлексивность в Python
  37. Функция zip() в Python
  38. Функции с дополнением
  39. Преобразование данных в Python
  40. Оператор Walrus в Python 3.8
  41. Работа с файлами в Python
  42. Операции с матрицами в Python

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