Back to questions
Junior — Middle
67
Каким образом в Python реализуется механизм итерации по объектам?
Companies where asked
Бергман Инфотех
Answer from AI
sobes.tech AI
В Python механизм итерации реализуется через протокол итераторов, который включает два метода: __iter__() и __next__().
- Объект считается итерируемым, если у него есть метод
__iter__(), возвращающий итератор. - Итератор — объект с методом
__next__(), который при каждом вызове возвращает следующий элемент последовательности или возбуждает исключениеStopIteration, когда элементы заканчиваются.
Пример реализации собственного итератора:
class CountUpTo:
def __init__(self, max):
self.max = max
self.current = 0
def __iter__(self):
return self
def __next__(self):
if self.current < self.max:
self.current += 1
return self.current
else:
raise StopIteration
for number in CountUpTo(5):
print(number)
Таким образом, цикл for автоматически вызывает __iter__() и затем многократно __next__() для получения элементов.