我有一个节点网络,在它们之间传递结构化数据。对于我的子问题,我们有这个分支 - 节点的线性序列:
nodes = [source, n1, n2, n3, n4]
第一个节点是一个生成器,每个其他节点从输入节点获取值并提供输出值。当前的实现是简单的 get() 从管道和 put() 到管道,每个节点都有单独的线程(这是有原因的)。我想将其更改为yield
-ing 迭代器。
我想以以下方式评估(如果我们认为节点是可调用的):
for result in n4(n3(n2(n1(source()))):
print result
我想像这样构建评估上下文:
context = src
for node in nodes[1:]:
context = pipe(context, node)
for result in context:
print result
限制:
我仍然希望能够单独使用节点 - 不是嵌套的,通过其他方式管道数据,因为节点可能位于单独的线程中。示例:[source, n1,n2]
在一个线程中(可能是嵌套的),在另一个线程中(可能是嵌套的),数据在和[n3, n4]
之间通过管道传输。案例:可能有一个非线性节点图,我想以这种方式对分支进行分组。n2
n3
node
必须是一个类来保存计算状态
context
the和 the pipe(context, node)
might的执行情况如何?或者如果它可以用不同的方式解决,你有什么提示吗?
yield from
Python 3.3 (PEP380)能以任何方式帮助我的案例吗?