Я пытаюсь понять Iterability в Python.Итерабельность в 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
Вам нужно "__main__" в кавычках –
есть опечатка , Это должно быть self.i + = 1 , а не i + = 1 – Cybis
Ваш текущий код, похоже, работает, есть ли еще проблема? – cobbal