这是我编写的一个愚蠢的示例,您将一些数据放入第一台机器,然后将其移动到第一个缓冲区,然后将其移动到第二台机器......
每台机器只是用它的 ID 号标记数据并传递它,但你可以让机器做任何事情。您甚至可以注册一个函数,以便在每台机器获取数据时调用它。
class Machine(object):
def __init__(self,number,next=None):
self.number=number
self.register_next(next)
def register_next(self,next):
self.next=next
def do_work(self,data):
#do some work here
newdata='%s %d'%(str(data),self.number)
if(self.next is not None):
self.next.do_work(newdata)
class Buffer(Machine):
def __init__(self,number,next=None):
Machine.__init__(self,number,next=next)
data=None
def do_work(self,data):
if(self.next is not None):
self.next.do_work(data)
else:
self.data=data
#Now, create an assembly line
assembly=[Machine(0)]
for i in xrange(1,20):
machine=not i%2
assembly.append(Machine(i) if machine else Buffer(i))
assembly[-2].register_next(assembly[-1])
assembly[0].do_work('foo')
print (assembly[-1].data)
编辑
缓冲区现在也是机器。