\

Pythonの yield 文は、ジェネレータ関数を定義する際に使用されるキーワードです。ジェネレータ関数は、イテレータを返す特殊な関数で、通常の関数とは異なり、呼び出されると処理を実行し、結果を返すと終了します。

しかし、yield キーワードを使用することで、ジェネレータ関数はイテレータを作成し、値を逐次的に生成します。以下に、 yield を使用したジェネレータ関数の例を示します。

def count_up_to(n):
    i = 1
    while i <= n:
        yield i
        i += 1

このジェネレータ関数を呼び出してイテレータを取得し、イテレータから値を逐次的に取得することができます。

iterator = count_up_to(5)
print(next(iterator))  # 1
print(next(iterator))  # 2
print(next(iterator))  # 3
print(next(iterator))  # 4
print(next(iterator))  # 5

イテレータの末尾に到達した場合、 StopIteration 例外が発生します。

yield 文が引数なしで使用される場合、None を返します。これは、空の return 文が None を返すのと同じです。しかし、yield 文がないと、ジェネレータは完全に実行され、制御が呼び出し元の関数に戻ります。

以上が、Pythonの yield 文についての基本的な説明です。この概念を理解することで、大規模なデータを効率的に扱ったり、リアルタイムでデータを処理する必要がある場合に有用です。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です