Курс 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: строки, типы данных
- Работа с массивами в Python
- Метод append() для списка
- Работа с очередями в Python
- Компиляция регулярных выражений
- Нахождение максимального значения и его индекса в списке
- Преобразование данных в Python
- Бесконечные списки в Python
- Сортировка данных с лямбда-функциями
- Работа с collections в Python.
- Monkey Patching в Python
- Вычисление логарифмов в Python
- JSON-esque в Python
- Необязательные аргументы в Python
- Срезы в Python
- Работа с YAML в Python: PyYAML.
- Хеширование паролей с солью
- Генераторы в Python
- Распаковка аргументов в Python
- Отслеживание выполнения программы с библиотекой tqdm
- Условные выражения в Python
- Преобразование числа в восьмеричную строку
- Установка Python3.7 и PIP
- Библиотека wikipedia для Python
- Colorama: окрашивание текста в Python
- Поиск HTML-элементов с BeautifulSoup
- Нахождение пересечения множеств
- Структура данных deque в Python
- Приближение чисел в Python
- Итераторы в Python
- Дефолтные параметры в Python
- Преобразование PowerPoint в PDF.
- Объединение Python и Shell
- Оператор continue в Python
- Выборка чисел
- Сравнение строк в Python
- Сглаживание списка
- Метод repr() в Python
- Контекстный менеджер в Python
- Утечки переменных цикла в Python 3.x
- Многострочные комментарии в Python
- Явный импорт в Python
- Progress с библиотекой tqdm
- Символ подчеркивания в Python
- Запуск внешних программ с subprocess
- Декораторы в Python















