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