Курс 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"
- Оператор == в Python
- Встраивание HTML в Jupyter Notebook
- Создание копии списка в Python
- Нахождение самого длинного слова в списке с помощью max
- Установка и использование модуля «howdoi»
- Преобразование PowerPoint в PDF.
- Создание объекта времени
- Создание пар из последовательностей
- Декоратор total_ordering для сравнения объектов
- Выражения-генераторы в Python
- Переопределение метода sub
- Срез в Python
- kwargs в Python
- TON Smart Challenge #2: участие и подготовка
- Поиск повторов в списке
- Копирование файлов с shutil()
- Эффективная конкатенация строк в Python
- Импорт в Python: список all
- Проверка версии Python
- Копирование объектов в Python
- Работа с комбинациями в Python.
- Переопределение метода __rshift__
- Многопроцессорное программирование в Python
- Область видимости переменных в Python
- Получение локальных переменных в Python
- Профилирование данных с Pandas.
- Нахождение разницы между списками в Python
- Функциональное программирование.
- Создание именованных кортежей в Python
- Методы split() и join() — Python строк.
- Генераторные функции в Python
- Работа с deque из collections
- Функции в Python: создание и вызов
- Инициализация переменных
- Использование модуля math
- Поиск индекса элемента в списке
- Генераторы в Python
- Изменение IP-адреса в Python
- Освобождение памяти в Python
- Руководство по использованию Colorama
- Основные функции и модули Python
- Оператор умножения для вектора
- Капитализация строк
- Динамические маршруты во Flask
- Enum в Python: создание и использование перечислений
- Использование подчеркивания в REPL
- Импорт и использование модулей в Python
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Комплексные числа в Python















