распаковать список из группы с помощью [duplicate]

В этом вопросе у меня бесконечная последовательность с использованием генераторов 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())
62
задан 23 May 2017 в 14:47

1 ответ

В Python 3, чтобы сделать синтаксис более последовательным, метод next() был переименован в __next__(). Вы можете использовать этот. Это объясняется в PEP 3114.

После решения Грега и вызова PEP 3114 (который затем пытается найти метод __next__() объекта], рекомендуется

36
ответ дан 15 August 2018 в 16:38
  • 1
    В частности, поскольку функция переносима между версиями 2 и 3, в то время как методы (из-за смены имени) не являются. – holdenweb 28 August 2016 в 10:39

Другие вопросы по тегам:

Похожие вопросы: