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

Зачем нужны магические (dunder) методы в итераторе

Магические методы (dunder) в итераторе позволяют объекту поддерживать итерацию в циклах for и других контекстах, где требуется перебор элементов. Основные методы:

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

Пример:

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

    def __iter__(self):
        return self

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

# Использование:
for num in CountUpTo(5):
    print(num)  # 0, 1, 2, 3, 4

Без этих методов объект не будет работать в for, next(), генераторах и других итерационных контекстах.

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

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

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

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