Python での yield の使い方

Pythonでは、yieldというキーワードはジェネレータ関数を定義するために使われます。ジェネレータ関数は、yieldを使うことで値を生成でき、値を生成するごとに実行を停止して、関数の現時点の状態を保持します。その後、再び値を生成しなければならないときに、前回の停止位置から実行を再開できます。

次に簡単な例を示します。yieldを使ってジェネレータ関数を定義する方法입니다。

def my_generator():
    yield 1
    yield 2
    yield 3

# 创建一个生成器对象
gen = my_generator()

# 使用next()函数获取生成器的下一个值
print(next(gen))  # 输出:1
print(next(gen))  # 输出:2
print(next(gen))  # 输出:3

# 当没有更多的值可以生成时,会引发StopIteration异常

上の例では、my_generator関数はジェネレータ関数で、yieldキーワードを使用して1、2、3の3つの値を生成しました。next(gen)を呼び出すと、ジェネレータ関数は停止したところから実行を再開し、次の値を生成して呼び出し元に返します。生成できる値がなくなった場合は、StopIteration例外が発生します。

さらに、ジェネレータ関数は for ループでジェネレータが生成する値を反復処理できます。next() 関数を明示的に呼び出す必要はありません。例:

for value in my_generator():
    print(value)

上記のコードでは、「1」、「2」、「3」が順に表示されます。

bannerAds