我有一项任务,我需要根据某些条件“切换”发电机中流的输出。
假设我们有一个生成器,它从某个无限来源产生数据。每次我们从生成器读取 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 应该关闭。我无法改变读者的行为方式,他们只是迭代输入。
这个问题类似于旋转文件日志。