Python で簡単なジェネレータの例2024年03月29日 14時22分42秒

Python で、イテレータ、ジェネレータとコルーチンはかなり有用だが、段階的に概念が難しくなっており、少し時間を置くと忘れてしまう。特に、コルーチンの書き方は忘れやすい。

まずは、ジェネレータから。イテレータは 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

次回

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2024/03/29/9671487/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。