非常に基本的な質問-Pythonのジェネレーターから1つの値を取得する方法は?
これまでのところ、gen.next()
と書くことで取得できることがわかりました。これが正しい方法であることを確認したいだけですか?
はい、または2.6以降ではnext(gen)
。
Python <= 2.5では、gen.next()
を使用します。これはすべてのPython 2.xバージョンで機能しますが、Python 3.xでは機能しません
Python> = 2.6では、next(gen)
を使用します。これは組み込み関数であり、より明確です。 Python 3でも機能します。
これらは両方とも、サブクラス化によってオーバーライドできる特別な名前の関数next()
を呼び出すことになります。ただし、Python 3では、この関数は__next__()
に名前が変更され、他の特別な関数との一貫性が保たれています。
使用(python 3)の場合)
next(generator)
ここに例があります
def fun(x):
n = 0
while n < x:
yield n
n += 1
z = fun(10)
next(z)
next(z)
印刷する必要があります
0
1
python 3ではgen.next()はありませんが、next(gen)を使用することができます。