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

Что принимает __iter__ в Python

Метод __iter__ должен возвращать объект-итератор. Этот объект должен реализовывать метод __next__, который возвращает следующие элементы последовательности или вызывает StopIteration при завершении.

Пример:

python
class MyRange:
    def __init__(self, start, end):
        self.start = start
        self.end = end

    def __iter__(self):
        return self  # если сам класс реализует __next__
text
def __next__(self):
    if self.start >= self.end:
        raise StopIteration
    current = self.start
    self.start += 1
    return current

Или с отдельным итератором:

class MyRangeIterator:
def init(self, start, end):
self.current = start
self.end = end

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

class MyRange:
def init(self, start, end):
self.start = start
self.end = end

text
def __iter__(self):
    return MyRangeIterator(self.start, self.end)
text

Ключевые моменты:
- `__iter__` не принимает параметров (кроме `self`)
- Должен возвращать объект с `__next__`
- Можно возвращать сам объект, если он реализует `__next__`
- Итератор должен поддерживать протокол итерации (вызывать `StopIteration`)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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