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