🔥 Как создать собственный итератор?
Создание собственного итератора в Python включает в себя реализацию метода
__iter__()
и метода
__next__()
в классе. Это позволяет объектам вашего класса быть итерируемыми.
Вот пример, как создать свой собственный итератор, который генерирует последовательность квадратов чисел:
class SquareIterator:
def __init__(self, max_num):
self.max_num = max_num # Устанавливаем максимальное число
self.current = 0 # Начальное значение
def __iter__(self):
return self # Возвращаем сам итератор
def __next__(self):
if self.current < self.max_num:
square = self.current ** 2 # Вычисляем квадрат текущего числа
self.current += 1 # Увеличиваем текущее число
return square # Возвращаем квадрат
else:
raise StopIteration # Останавливаем итерацию, если предел достигнут
# Использование созданного итератора
squares = SquareIterator(5) # Создаем итератор для квадратов чисел от 0 до 4
for square in squares:
print(square) # Выводит: 0, 1, 4, 9, 16
Как это работает:
1.
Инициализация: Конструктор
__init__
принимает максимальное число, до которого будут вычисляться квадраты, и инициализирует текущее число.
2.
Метод __iter__
Этот метод должен возвращать объект итератора. В данном случае он возвращает сам класс.
3.
Метод next В этом методе вычисляется квадрат текущего числа и увеличивается значение текущего числа. Если текущее число достигло максимума, вызывается исключение
StopIteration
, чтобы сигнализировать об окончании итерации.
Ставь
👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям
тут 👈