Курс 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
- Получение идентификатора объекта в памяти
- Избегайте ошибку FileNotFoundError
- Создание виртуальной среды
- Метод rmatmul для обратного матричного умножения
- Упрощение условных выражений с тернарным оператором
- Работа с enumerate()
- Управление User-Agent в Python
- Установка пакетов с помощью pip
- Введение в Python
- Настройка вывода в Numpy
- Создание пустых функций и классов в Python
- Преобразование строки в число
- Подсчет элементов с помощью Counter
- Оператор «and» в Python
- Метод join() для объединения элементов
- Наиболее частотные элементы с помощью Counter
- Поиск индекса элемента
- Функции range() в Python
- Участие в сообществе @selectel
- Декодирование байтов в строку
- Манипуляция формой массива в Numpy
- Метод title() в Python
- Разработка игры Pong с turtle
- Модуль pprint
- Тестирование модели в PyTorch
- Работа с географическими данными.
- Работа с байтовыми строками в Python
- Особенности ключей словаря в Python
- Работа с комплексными числами
- Функция enumerate() в Python
- Вывод переменной и строки в Python
- Перевод эмодзи и эмотиконов.
- Оптимизация интернирования строк
- Оптимизация методов в Python 3.7
- Метод count() для списка
- PrettyTable: создание таблицы
- Работа с типами данных в Python с помощью pydantic.
- Итераторы в Python
- Отправка поздравлений по дню рождения
- Метод rxor для операции побитового исключающего «или»
- Объединение словарей в Python
- Повторение элементов в Python
- Defaultdict в Python
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Пересечение списков с использованием множеств
- Конвертация коллекций в Python















