Курс 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. Логирование с Logzero
  2. Работа со временем в Python
  3. Библиотека wikipedia для Python
  4. Форматирование строк в Python.
  5. Извлечение данных из JSON
  6. Регистрация на курсы SF Education
  7. Python: Фильтрация списков с помощью filter()
  8. Создание словарей в Python
  9. Функция с *args.
  10. Обработка исключений в Python
  11. Модуль math: константы π и e
  12. Метод __float__ в Python
  13. Метод enumerate() в Python
  14. Именованные кортежи в Python
  15. Изменение элемента списка
  16. Списковые включения в Python
  17. Чтение бинарного файла в Python.
  18. Преобразование символов в нижний регистр
  19. lru_cache оптимизация функций
  20. Очистка строки в Python
  21. Извлечение чисел из текста
  22. Область видимости переменных
  23. Создание коллекций из выражения-генератора
  24. Метод count() для списка
  25. Сортировка и обратный порядок
  26. Дизассемблирование Python кода
  27. Преобразование чисел в Python
  28. Капитализация строк
  29. Применение функции к списку
  30. Работа с асинхронными задачами в Python
  31. Numpy: объединение массивов
  32. Декораторы в Python
  33. Декораторы для регистрации функций
  34. Работа с базами данных SQLite
  35. Принципы Zen Python
  36. Работа с срезами в Numpy
  37. Проверка однородности элементов списка
  38. Удаление символов новой строки в Python.
  39. Метод matmul для умножения матриц
  40. Python: динамическая типизация и проверка типов
  41. Объявление переменных в Python
  42. Bootle — простой веб-фреймворк
  43. Хэш-функции и метод цепочек
  44. Округление в Python
  45. Работа с часовыми поясами в Python
  46. Обработка ошибок в Python

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