Я пытаюсь понять Iterability в Python.
Как я понимаю, __iter__()
должен возвращать объект, у которого есть метод next()
, который должен возвращать значение или поднять исключение StopIteration
. Таким образом, я написал этот класс, который удовлетворяет обоим этим условиям.
Но это не работает. Что не так?
class Iterator:
def __init__(self):
self.i = 1
def __iter__(self):
return self
def next(self):
if self.i < 5:
return self.i
else:
raise StopIteration
if __name__ == __main__:
ai = Iterator()
b = [i for i in ai]
print b