是否有Queue
在with
语句中使用 Python 的标准方法?这就是我希望能够使用它的方式:
import Queue
myqueue = Queue.Queue()
...
...
...
with myqueue as nextItem:
doStuff(nextItem)
对象没有__enter__
or__exit__
方法Queue
,所以这不起作用。是否有任何语法糖使它看起来比这更好?
import Queue
myqueue = Queue.Queue()
...
...
...
try:
nextItem = myqueue.get()
doStuff(nextItem)
finally:
myqueue.task_done()
编辑:在这种情况下,我有两个想要使用with
语句的原因。首先,我认为with
语句会帮助我的代码更简洁一些,尤其是当不止一次调用doStuff
. 其次,最好有一些简单的东西,我可以养成每次使用的习惯,以确保我永远不会忘记调用task_done
或遇到错误可能导致调用被跳过的情况。