Курс 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. Возврат нескольких значений из функции
  3. Подписка на SelectelNews в Twitter
  4. Обработка ошибок ввода данных
  5. Конкатенация строк с методом join()
  6. Инициализация переменных
  7. Стать Python-разработчиком
  8. Асинхронное выполнение задач в процессах
  9. Именованные срезы в Python
  10. Работа с пользовательским вводом
  11. Хеши в Python
  12. Определение объема памяти объекта
  13. Хранение переменных в Python.
  14. Декораторы в Python
  15. Добавление цвета в консоли
  16. Работа с WindowsPath()
  17. Моржовый оператор в Python 3.8
  18. Импорт модулей в Python 3.12
  19. Функции range() в Python
  20. Частичное совпадение пользовательского ввода в Python 3.10
  21. Генерация QR-кодов с библиотекой qrcode
  22. Дизассемблирование Python кода
  23. Работа со слайсами
  24. Функции-генераторы в Python
  25. F-строки в Python
  26. Функция map() в Python
  27. Big O оптимизация
  28. Расчет времени выполнения кода
  29. Функции в Python: создание и вызов
  30. Разделение строки на пары ключ-значение.
  31. Создание словарей с defaultdict
  32. Работа с изменяемыми коллекциями
  33. Обработка исключений с блоком else
  34. Оператор in для Python
  35. Метод __float__ в Python
  36. Замена текста с re.sub()
  37. Замена элементов в списке с помощью генераторов списков
  38. Блок else в циклах Python
  39. Декораторы классов
  40. Оператор распаковки в Python
  41. Использование двоеточия в Python
  42. Создание треугольника Паскаля
  43. Создание графиков в терминале
  44. Итерация по копии коллекции

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