首页 > 解决方案 > 如何在不删除python asyncio.Queue()中的项目的情况下获取元素

问题描述

asyncio.Queue get()方法将从队列中删除并返回一个项目。

但我只想阅读该项目,而不是删除它。我怎么做?

queue = asyncio.Queue()
result = await queue.get()

在这里,我只想知道结果的值,但不想将其从队列中删除。

标签: pythonpython-3.xpython-asyncio

解决方案


你可以试试这个,虽然它有点小技巧,并且可能不适用于所有 Python 版本。尽管它可能不是线程安全的,但它确实在 3.9.6 中工作:-

import queue

TQ = queue.Queue()

TQ.put(99)
TQ.put(100)

for q in TQ.__dict__['queue']:
    print(q)

这将发出值 99 & 100


推荐阅读