Курс 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"
- Измерение времени выполнения кода с помощью time
- Функция rsplit() в Python
- Работа с enumerate()
- Конкатенация строк с методом join()
- Обработка элементов в Python
- Операции с датами в Python
- Мониторинг работы программы Py-spy
- Вызов функций по строке в Python.
- Навыки Python: строки, типы данных
- Виртуальные среды в Python
- Работа с буфером обмена на Python
- Список методов и атрибутов
- Библиотека funcy: удобные утилиты
- Использование модуля math
- Делегирование в Python
- Метод getitem для доступа к элементам последовательности
- Управление контекстом выполнения кода
- Метод count() для списков
- Функция reduce() из модуля functools
- Преобразование кортежа в словарь.
- Методы Python для работы с данными
- Работа с JSON данными в Python
- Генераторы в Python
- Комментарии в Python
- Установка User-Agent в Python
- Логирование с Logzero
- Метод rename() для переименования файлов и каталогов
- Работа с файловой системой в Python
- Создание коллекций из генератора
- Python Менеджер контекста
- Метод rsub в Python: расширение функциональности вычитания
- Преобразование чисел в слова
- Документация функции help() в Python
- Конкатенация строк с join() в Python
- Безопасный доступ к значениям словаря
- Оператор «is not» в Python
- Атрибуты класса и экземпляра
- Экспорт функций в Python
- Группировка элементов в словарь
- Логические операторы в Python
- Список импортированных модулей в Python
- Работа с YAML в Python
- Округление дробей в Python
- Работа с комплексными числами
- Метод enumerate() в Python
- Поиск уникальных элементов строкой в Python















