Курс 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. Блок try-except-else
  3. Непрерывная проверка в Python
  4. Проектирование Singleton с метаклассом
  5. Профилирование данных с Pandas.
  6. Генераторы в Python
  7. Модуль pprint
  8. Именованные срезы в Python
  9. Передача параметров в Python
  10. Метод __float__ в Python
  11. Форматирование вывода с F-строками
  12. Быстрый поиск кода
  13. Логические операторы в Python
  14. Работа с NumPy
  15. F-строки в Python 3.8
  16. Генерация случайных чисел в Python
  17. Обязательные аргументы в Python
  18. Использование defaultdict в Python
  19. Работа с эмодзи в Python
  20. Работа с функцией next() в Python
  21. Метод ior для битовых операций
  22. Перевернуть список в Python
  23. Генерация случайных чисел в Python
  24. Локальные переменные.
  25. Применение команды break
  26. Экспорт функций в Python
  27. Конкатенация строк с помощью join()
  28. Создание уникального множества
  29. Работа с Path в Python
  30. Поиск шаблона в строке
  31. Улучшение читаемости кода в Python
  32. Операторы += в Python
  33. %pinfo: получение информации об объекте
  34. Кортежи в Python: особенности и преимущества
  35. Декодирование строк в Python
  36. Добавление элементов в список
  37. Оператор «is not» в Python
  38. Извлечение новостей с помощью newspaper3k
  39. Работа с байтовыми строками в Python
  40. Парсинг статей с Newspaper3k
  41. Функции в Python: создание и вызов
  42. Создание графиков в терминале
  43. Счетчик в Python: most_common()
  44. Разработка Telegram-ботов
  45. Лямбда-функции в цикле
  46. Проверка версии Python

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