Назад к вопросам
Middle
66
questionbank

Какие методы существуют у итератора в Python?

Sobes Copilot

Получайте ответы в реальном времени

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

sobes.tech AI

У итератора в Python существует два основных метода:

  • __iter__(): Возвращает сам объект итератора. Это часть протокола итерации.
  • __next__(): Возвращает следующий элемент из итерации. Когда элементов больше нет, вызывает исключение StopIteration.

Пример:

class MyIterator:
    def __init__(self, data):
        self.data = data
        self.index = 0 # Индекс для отслеживания текущего положения

    def __iter__(self):
        return self # Метод __iter__ возвращает сам итератор

    def __next__(self):
        if self.index < len(self.data):
            value = self.data[self.index]
            self.index += 1
            return value # Возвращаем следующий элемент
        else:
            raise StopIteration # Вызываем исключение при окончании итерации

# Использование итератора
my_list = [10, 20, 30, 40]
my_iter = MyIterator(my_list)

# Итерация с помощью next()
print(next(my_iter)) # 10
print(next(my_iter)) # 20

# Итерация с помощью цикла for (он internally использует __iter__ и __next__)
for item in MyIterator(my_list):
    print(item) # 10, 20, 30, 40