Какие методы нужно переопределить для реализации итератора
Python
Junior
Без компании
Какие методы нужно переопределить для реализации итератора
Ответы
Для реализации итератора в Python нужно переопределить два метода в классе:
- `__iter__(self)` - должен возвращать сам объект итератора (обычно `self`)
- `__next__(self)` - должен возвращать следующий элемент последовательности или вызывать `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
raise StopIteration
# Использование
for num in CountUpTo(5):
print(num) # 1, 2, 3, 4, 5
```
Также можно реализовать итератор через генераторы, тогда методы создаются автоматически.