Встречается на собеседованиях • сегодня
Что принимает __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 currentclass 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`)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы