Курс 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. Избегайте ошибку FileNotFoundError
  4. Создание виртуальной среды
  5. Метод rmatmul для обратного матричного умножения
  6. Упрощение условных выражений с тернарным оператором
  7. Работа с enumerate()
  8. Управление User-Agent в Python
  9. Установка пакетов с помощью pip
  10. Введение в Python
  11. Настройка вывода в Numpy
  12. Создание пустых функций и классов в Python
  13. Преобразование строки в число
  14. Подсчет элементов с помощью Counter
  15. Оператор «and» в Python
  16. Метод join() для объединения элементов
  17. Наиболее частотные элементы с помощью Counter
  18. Поиск индекса элемента
  19. Функции range() в Python
  20. Участие в сообществе @selectel
  21. Декодирование байтов в строку
  22. Манипуляция формой массива в Numpy
  23. Метод title() в Python
  24. Разработка игры Pong с turtle
  25. Модуль pprint
  26. Тестирование модели в PyTorch
  27. Работа с географическими данными.
  28. Работа с байтовыми строками в Python
  29. Особенности ключей словаря в Python
  30. Работа с комплексными числами
  31. Функция enumerate() в Python
  32. Вывод переменной и строки в Python
  33. Перевод эмодзи и эмотиконов.
  34. Оптимизация интернирования строк
  35. Оптимизация методов в Python 3.7
  36. Метод count() для списка
  37. PrettyTable: создание таблицы
  38. Работа с типами данных в Python с помощью pydantic.
  39. Итераторы в Python
  40. Отправка поздравлений по дню рождения
  41. Метод rxor для операции побитового исключающего «или»
  42. Объединение словарей в Python
  43. Повторение элементов в Python
  44. Defaultdict в Python
  45. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  46. Пересечение списков с использованием множеств
  47. Конвертация коллекций в Python

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