工作者。
def worker():
while True:
fruit, colour = q.get()
print 'A ' + fruit + ' is ' + colour
q.task_done()
把项目放入队列。
fruit = 'banana'
colour = 'yellow'
q.put(fruit, colour)
输出:
>>> A banana is yellow
我怎样才能实现这个目标?我试了一下,得到 ValueError: too many values to unpack
我才意识到,我的 q.put()
把这两个变量放到队列中。
有没有办法像我尝试的那样,把 "一组 "变量objects放到一个单一的队列项中?
是的,使用元组。
fruit = 'banana'
colour = 'yellow'
q.put((fruit, colour))
它应该会自动解包(应该,因为我现在还不能尝试)。
我只是会做一个列表。
fruit = 'banana'
colour = 'yellow'
q.put([fruit, colour])
然后像这样得到它。
result = q.get()
fruit = result[0]
colour = result[1]
所以,我认为最好的方法是重构一下你的数据。 做一些对象来存放一对值(在本例中是水果和颜色),然后把这个对象放到队列中,然后在需要的时候拉出变量。
如果你愿意,我可以稍后发一些示例代码。