Встречается на собеседованиях • сегодня

Какие магические методы нужно определить для создания собственного итератора

Для создания собственного итератора в Python нужно реализовать два магических метода:

  1. __iter__() - должен возвращать сам объект итератора (обычно self)
  2. __next__() - должен возвращать следующий элемент последовательности или вызывать StopIteration, если элементы закончились

Пример простого итератора, который возвращает числа от 0 до заданного предела:

python
class MyRange:
    def __init__(self, limit):
        self.limit = limit
        self.current = 0

    def __iter__(self):
        return self

    def __next__(self):
        if self.current < self.limit:
            value = self.current
            self.current += 1
            return value
        else:
            raise StopIteration

Использование:

python
for num in MyRange(5):
    print(num)  # 0, 1, 2, 3, 4

Также можно реализовать итератор через генераторную функцию с yield, тогда Python автоматически добавит нужные методы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы