Back to questions
Junior — Middle
63
Можете объяснить, что делает метод __iter__ в контексте итераторов в Python?
Answer from AI
sobes.tech AI
Метод __iter__ в Python определяет объект как итерируемый. Он должен возвращать итератор — объект, который реализует метод __next__.
Когда вы используете цикл for или функцию list() на объекте, Python вызывает у него __iter__, чтобы получить итератор, а затем последовательно вызывает __next__ для получения элементов.
Пример:
class CountUpTo:
def __init__(self, max):
self.max = max
def __iter__(self):
self.current = 1
return self
def __next__(self):
if self.current <= self.max:
val = self.current
self.current += 1
return val
else:
raise StopIteration
for num in CountUpTo(3):
print(num)
Этот код выведет числа от 1 до 3.