Sobes.tech
Назад к вопросам
Junior — Middle
54

Для чего предназначен метод __next__ в итераторах Python?

Компании, где спрашивали
Positive TechnologiesPositive Technologies
АО К-Технологии

Ответ от нейросети

sobes.tech AI

Метод __next__ в итераторах Python предназначен для получения следующего элемента последовательности. При вызове next() на итераторе Python вызывает его метод __next__, который возвращает следующий элемент. Если элементов больше нет, метод должен вызвать исключение StopIteration, чтобы сигнализировать об окончании итерации.

Пример реализации простого итератора:

class CountUpTo:
    def __init__(self, max):
        self.max = max
        self.current = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.current >= self.max:
            raise StopIteration
        self.current += 1
        return self.current

counter = CountUpTo(3)
for number in counter:
    print(number)  # Выведет 1, 2, 3