ジェネレータ関数って?

ジェネレータ関数は、ジェネレータオブジェクトを返す特別な種類の関数です。通常の関数とは異なり、return 文ではなく yield 文を使用して値を返します。yield 文は、関数の実行を一時停止し、値を返しますが、関数の状態は保持されたままとなります。その後、再度関数が呼び出されると、前回の停止した箇所から再開されます。

ジェネレータ関数の定義には次のような形式があります:

python
def my_generator(): yield 1 yield 2 yield 3

この例では、my_generator というジェネレータ関数を定義しています。yield 文を使用して値を返しており、この関数を呼び出すとジェネレータオブジェクトが生成されます。このオブジェクトは、next() 関数を使用して値を逐次的に取得することができます。ジェネレータ関数は、ジェネレータオブジェクトを作成し、そのオブジェクトを返します。

ジェネレータ関数は、大量のデータを逐次的に生成する際や、メモリの効率的な使用が必要な場合に特に有用です。また、無限に続くシーケンスを表現することもできます。例えば、フィボナッチ数列などを無限に生成するジェネレータ関数を定義することができます。

未分類

Posted by ぼっち