いくつかの条件に基づいて、フローの途中でジェネレーターの出力を「切り替える」必要があるタスクがあります。
無限のソースからデータを生成するジェネレータがあるとしましょう。ジェネレーターから 1GB のデータを読み取るたびに、出力を他のリーダーに切り替えます。
input = MyInfiniteGenerator()
Reader1(input) # does something with the first gigabyte of data
Reader2(input) # does something with the second gigabyte of data
...
出力を Reader1 から Reader2 に切り替えるときは、Reader1 を閉じる必要があります。リーダーの動作を変更することはできません。単に入力を繰り返すだけです。
この問題は、ローテーション ファイル ログに似ています。