Курс 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. Построение графиков в Matplotlib
  2. Избегайте пустого списка
  3. Работа с множествами в Python
  4. Применение функции к списку
  5. Объединение объектов в Python
  6. Создание копии списка в Python
  7. Метод remove() для удаления элемента из списка
  8. Defaultdict в Python
  9. Работа с коллекциями Python
  10. Разбиение текста в Python
  11. Сортировка с помощью параметра key
  12. Мониторинг памяти с Pympler
  13. Парсинг статей с Newspaper3k
  14. Работа со строками
  15. Работа с NumPy
  16. Удаление специальных символов с помощью re.sub
  17. Тип CodeType в Python.
  18. Получение локальных переменных в Python
  19. Просмотр внешних файлов в %pycat
  20. Декоратор Ajax required
  21. Мониторинг работы программы Py-spy
  22. Создание уникального множества
  23. Функция zip() — объединение последовательностей
  24. *args и **kwargs в Python
  25. Получение ID текущего процесса
  26. Добавление элементов в список
  27. lru_cache оптимизация функций
  28. Итераторы в Python
  29. Расчет времени выполнения
  30. Генераторы в Python
  31. Использование модуля math
  32. Изучение объектов с помощью dir()
  33. Регистрация на хакатоне
  34. Оценка точности модели
  35. OrderedDict — упорядоченный словарь
  36. Переопределение метода len
  37. Работа с областями видимости переменных
  38. Декораторы для регистрации функций
  39. Атрибуты массивов в Numpy
  40. Установка и использование Telegram API в Python
  41. Изменение объектов в Python
  42. Обработка ошибок в Python
  43. Оператор * в Python
  44. Удаление элементов по срезу
  45. Преобразование символов в нижний регистр
  46. Numpy: использование Ellipsis
  47. Профилирование кода
  48. Метод join() с набором

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