1. ホーム
  2. python

[解決済み] Python 3 の yield generator には next() 関数がありません。

2023-04-07 09:22:51

質問

この質問 で、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(uptofive) の代わりに uptofive.next() .

組み込みの next() 関数も Python 2.6 以降で動作します。