Курс 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. Работа с файлами в Python
  3. Лямбда-функции в Python
  4. Работа с PosixPath() в Python
  5. Замыкания в Python
  6. Определение имен функций
  7. Проверка индексов коллекции
  8. Создание списка через итерацию
  9. Сравнение def и lambda-функций
  10. Метод rename() для переименования файлов и каталогов
  11. Работа со случайными элементами
  12. Разработка Telegram-ботов
  13. Выбор редактора кода.
  14. Создание функций высшего порядка
  15. Ограничение итераций в Python
  16. Установка и использование Python-dateutil
  17. lru_cache оптимизация функций
  18. Управление импортом в Python
  19. Удаление элементов во время итерации
  20. Получение размера объекта с sys.getsizeof()
  21. Пропуск строк в файле с itertools
  22. Отладка в командной строке
  23. Сортировка данных с лямбда-функциями
  24. Генераторы в Python
  25. Скрытие вывода данных
  26. Разделение функций на этапы
  27. Подсчет элементов в списке с Counter
  28. TypedDict для kwargs в Python 3.12
  29. Методы в Python
  30. Подсчет частотности элементов в Python
  31. Объединение словарей в Python
  32. Функция eval() в Python
  33. Решатель судоку на Python с pygame
  34. Форматирование строк с f-строками
  35. Очистка вывода в Python
  36. Удаление дубликатов из списка
  37. Методы list в Python
  38. Операции с массивами в NumPy
  39. Разделение строки на пары ключ-значение.
  40. Объединение словарей в Python
  41. Ограничение ресурсов в Python
  42. Python union() функция — объединение множеств
  43. Управление ресурсами в Python
  44. Форматирование строк в Python
  45. Работа с каталогами в Python
  46. Создание Telegram-бота на Python

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