ジェネレータから作られるイテレータをそのまま使うのではなく、コルーチンとして翻訳しているだけです。Luaっぽくなりました。Foundで追加された機能が必要なので、Pythonのバージョンは2.5以上になってしまいますが、コルーチンへのパラメータ入力が必要なければ、2.4以下でも似たようなことは可能かもしれません。これ、コルーチンをネストしたいときが問題です。Luaだとyieldが関数なので、関数のネストとして単純にリファクタリングできます。Pythonのyieldは、その関数内でのみ有効な「構文」です。コルーチンネストはこんな感じ。time.sleep(0.5)main_flowがsub_flowを使うとき、単なる関数呼び出しではなく、「サブコルーチンを作成して転送」する必要がありました。Luaには及ばないけど、そこまでひどいわけじゃないですね。コルーチンの刻み幅って、そんなに深くする必要はないだろうし。Blog|ブログを報告する。