Sobes.tech
Junior — Middle

Какъв е резултатът от изпълнението на метода __iter__ в Python?

sobes.tech AI

Отговор от AI

Методът __iter__ в Python връща итератор на обекта. Този итератор трябва да реализира метода __next__, който при всяко извикване връща следващия елемент от последователността, а при достигане на края повдига изключението StopIteration.

По този начин, извикването iter(obj) извиква obj.__iter__(), а върнатият обект се използва в цикли for и други конструкции, работещи с итератори.

Пример:

class MyRange:
    def __init__(self, n):
        self.n = n
    def __iter__(self):
        self.current = 0
        return self
    def __next__(self):
        if self.current < self.n:
            val = self.current
            self.current += 1
            return val
        else:
            raise StopIteration

for i in MyRange(3):
    print(i)
# Изход:
# 0
# 1
# 2