Python 将While循环与else语句一起使用两次
我找不到与我的问题类似的东西 我目前正在开发线程器函数 我有两个队列,一个Python 将While循环与else语句一起使用两次,python,python-3.x,Python,Python 3.x,我找不到与我的问题类似的东西 我目前正在开发线程器函数 我有两个队列,一个r\u队列用于常规队列,另一个p\u队列用于优先级 def _threader(self): # Thread Handler while self.active: while self.p_queue.empty() and self.r_queue.qsize() > 0: # Regular Queue queue_dict = s
r\u队列
用于常规队列,另一个p\u队列
用于优先级
def _threader(self):
# Thread Handler
while self.active:
while self.p_queue.empty() and self.r_queue.qsize() > 0:
# Regular Queue
queue_dict = self.r_queue.get()
self._complete_task(queue_dict, prioritized=False)
(else?) while self.p_queue.qsize() > 0:
# Prioritized Queue
queue_dict = self.p_queue.get()
self._complete_task(queue_dict, prioritized=True)
我在这里如何正确使用(其他?)选项
编辑:线程器背后的思想是,它从队列接收数据并完成函数。第一个while是它对优先级队列进行优先级排序,并且仅在它有大小时调用。(当它不存在时无法获得某些内容)我的问题是,我需要为优先级队列添加一个while循环,该行带有
(else?)while self.p_queue.qsize()>0:
,但我不能直接使用else。如果我愿意,如果队列大小不存在,它会不断选择“Nothing”。类似于elif while self.p_queue.qsize()>0的东西,但它不存在。您不需要内部while
循环:
def _threader(self):
# Thread Handler
while self.active:
if self.p_queue.qsize() > 0:
# Prioritized Queue
queue_dict = self.p_queue.get()
self._complete_task(queue_dict, prioritized=True)
elif self.r_queue.qsize() > 0:
# Regular Queue
queue_dict = self.r_queue.get()
self._complete_task(queue_dict, prioritized=False)
你能用通俗易懂的语言描述一下它应该如何工作吗?self.p_queue.empty()和self.r_queue.qsize()>0
应该如何工作?完全不清楚你期望其他的做什么,或者你为什么需要它。@jsmolka他们是两个不同的队列,所以它可以工作。@Aran Fey哇,读了p
和r
。