Sobes.tech
Back to questions
Junior — Middle
59

Какие шаги нужны для реализации собственного механизма итерации по коллекции данных?

Answer from AI

sobes.tech AI

Для реализации собственного механизма итерации по коллекции в Python нужно определить объект-итератор, который реализует методы __iter__() и __next__().

Основные шаги:

  1. Создать класс коллекции, который реализует метод __iter__(), возвращающий итератор.
  2. Создать класс итератора, который хранит состояние текущей позиции и реализует метод __next__(), возвращающий следующий элемент или вызывающий StopIteration при окончании.

Пример:

class MyCollection:
    def __init__(self, data):
        self.data = data

    def __iter__(self):
        return MyIterator(self.data)

class MyIterator:
    def __init__(self, data):
        self.data = data
        self.index = 0

    def __next__(self):
        if self.index < len(self.data):
            result = self.data[self.index]
            self.index += 1
            return result
        else:
            raise StopIteration

# Использование
col = MyCollection([1, 2, 3])
for item in col:
    print(item)

Так вы создадите собственный итератор, который можно использовать в циклах for и других конструкциях, работающих с итераторами.