Как реализован итератор в Python
Python
Junior
Без компании
Как реализован итератор в Python
Ответы
В Python итератор — это объект, который реализует протокол итератора, состоящий из двух методов:
- `__iter__()` — возвращает сам объект итератора
- `__next__()` — возвращает следующий элемент или вызывает `StopIteration`
Пример простого итератора:
```
class Counter:
def __init__(self, low, high):
self.current = low
self.high = high
def __iter__(self):
return self
def __next__(self):
if self.current > self.high:
raise StopIteration
else:
self.current += 1
return self.current - 1
# Использование
for num in Counter(1, 5):
print(num) # 1, 2, 3, 4, 5
```
Также можно создавать итераторы с помощью генераторов (функций с `yield`), что часто проще:
```
def counter(low, high):
current = low
while current <= high:
yield current
current += 1
```
Встроенные типы (list, dict, set и др.) уже реализуют протокол итератора.