Junior — Middle
Hoe implementeer je de mogelijkheid om de elementen van een object te doorlopen alsof dit object zelf door te lopen is, zodat het in Python iterabel wordt?
sobes.tech AI
Antwoord van AI
Чтобы сделать объект итерируемым в Python, нужно реализовать метод __iter__, который возвращает итератор. Итератор — это объект с методом __next__, который возвращает следующий элемент или вызывает StopIteration, когда элементы закончились.
Пример простого итерируемого объекта:
class MyIterable:
def __init__(self, data):
self.data = data
def __iter__(self):
self.index = 0
return self
def __next__(self):
if self.index >= len(self.data):
raise StopIteration
value = self.data[self.index]
self.index += 1
return value
obj = MyIterable([1, 2, 3])
for item in obj:
print(item)
В этом примере объект MyIterable сам является итератором. Можно также сделать __iter__ возвращающим отдельный итератор, если нужно.
Таким образом, реализовав __iter__ и __next__, объект становится итерируемым и поддерживает перебор в циклах for.