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