В этом вопросе у меня бесконечная последовательность с использованием генераторов Python. Но тот же код не работает в Python 3, потому что, похоже, нет функции next(). Что эквивалентно функции next?
def updown(n):
while True:
for i in range(n):
yield i
for i in range(n - 2, 0, -1):
yield i
uptofive = updown(6)
for i in range(20):
print(uptofive.next())
В Python 3, чтобы сделать синтаксис более последовательным, метод next() был переименован в __next__(). Вы можете использовать этот. Это объясняется в PEP 3114.
После решения Грега и вызова PEP 3114 (который затем пытается найти метод __next__() объекта], рекомендуется