Back to questions
Junior — Middle
57
Каким образом реализовать возможность перебора элементов объекта как этого объекта, чтобы он стал итерируемым в Python?
Answer from AI
sobes.tech 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.