Python で簡単なジェネレータの例 ― 2024年03月29日 14時22分42秒
まずは、ジェネレータから。イテレータは list や dict 等の順次内容物を巡れるデータ構造。ジェネレータはこの機構を関数でも同じ様に出来ればとして生まれたもの。外側としては、配列等を返す関数であれば、イテレータとして使えるようになる。、配列では無く、値を複数返す一捻りを加えた物がジェネレータ。呼出側にしては、一つずつ巡っていくのには変わらない。その利点はメモリやネットワークのピークの緩和に使えるので、有用。
そして、一つの関数が複数回値を返す為に新しいキーワードが追加された。それが yield。関数内で yield 呼出し時に一旦関数の実行が呼出が中断され、再度イテレータを呼び出した時に、関数が yield 呼び出しから戻って実行される。
ここで、簡単な実例。
% cat simple_generator.py
def generator():
yield "one"
yield "two"
for i in generator():
print(i)
% python3.9 simple_generator.py
one
two
次回。
最近のコメント