如果我有一个包含 20 个数字的输入队列,我怎样才能得到所有数字的总和?到目前为止,这是我想出的:
import bonobo as bb
from bonobo.config import Configurable, ContextProcessor
from bonobo.util import ValueHolder
def extract_nums():
yield 1
yield 2
yield 3
class TransformNumber(Configurable):
@ContextProcessor
def total(self, context):
yield ValueHolder({'extract':0,'transform':0})
def __call__(self, total, num, **kwargs):
total['extract']+=num
transform_num = num * 10
total['transform']+=transform_num
if num==3: # Final number
print("TOTALS:",total.get())
yield transform_num
graph = bb.Graph()
graph.add_chain(
extract_nums,
TransformNumber(),
bb.PrettyPrinter()
)
可以这样做还是有更好的方法?