Курс 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. Генерация тестовых данных с factory_boy
  2. Множественное назначение в Python
  3. Получение текущей даты в Python
  4. Аннотации типов в Python
  5. Обход элементов в Python
  6. Измерение времени выполнения кода
  7. Декораторы в Python
  8. Метод rpow в Python
  9. Обмен значений переменных в Python
  10. Освобождение памяти в Python
  11. Удаление falsy-значений из списка с помощью filter
  12. Тернарный оператор в Python
  13. Работа с атрибутом dict
  14. Функциональное программирование.
  15. Оптимизация гиперпараметров с Scikit Optimize
  16. Глобальные переменные в Python
  17. Метод splitlines() для разделения строк
  18. Округление дробей в Python
  19. Преобразование данных в Python
  20. Python UserString — создание подклассов строк
  21. Особенности запятых в Python
  22. Замена текста с re.sub()
  23. Структурирование данных с Pydantic
  24. Просмотр атрибутов и методов класса
  25. Обработка ошибок в JSON данных
  26. JMESPath в Python
  27. Присвоение значений переменным в Python
  28. Оператор in для проверки наличия элемента
  29. Область видимости переменных
  30. Поиск с помощью регулярных выражений
  31. Работа с *args и **kwargs в Python
  32. Удаление ссылок в Python
  33. Конструктор в Python
  34. Распаковка аргументов в Python
  35. Преобразование в float
  36. Работа с файлами в Python
  37. Комментарии в Python
  38. Использование функции enumerate()
  39. Создание словарей с defaultdict
  40. Получение частей дроби
  41. Python Метод sleep() из time
  42. Создание списков в Python
  43. Numpy: объединение массивов
  44. Flask — веб-фреймворк Python
  45. Создание множества в Python

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