ジェネレータ

「ジェネレータ」の編集履歴(バックアップ)一覧はこちら

ジェネレータ」(2005/10/17 (月) 14:29:54) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

Pythonのジェネレータは、めっちゃ便利。 ゲームプログラミング
Pythonのジェネレータは、めっちゃ便利。 ゲームプログラミングでも便利。 windows上のゲームプログラミングでは、 メッセージループの中でプログラムを進行させていかないといけないので、FSMを書くことになってしまいがち。 スレッドを使うことで、whileループをまわしたりもできるようになるが、スレッドをわざわざ使わないでも、 pythonのジェネレータを使うことで、マイクロスレッド、 コルーチン(正確には半コルーチン)のようなものを 超簡単に実装できる。 Pythonでは、return文の代わりにyield文を使うことで、 ジェネレータを、めっちゃ簡単に生成できる。 概念説明するより、具体例を見た方が簡単なので、どうぞ。 #-------------------------- def gen(n):   yield n   n+=1   yield n   n*=2   yield n g=gen(2) print g.next(),g.next(),g.next() #-------------------------- で、 2 3 6 という出力になる。 yield文は、return文と同じように値を返す。 が、そこで関数は一時停止状態になり、 次にnext()で呼ばれると、また前回のyield文の直後から、 ローカル変数の状態などを継続して次のyield文まで 実行して値を返す。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。