对不起,对于任何破英语...
所以,基本上,我有一个列表,其中包含的信息和他们的命运:
messages = [(id_1, msg_1), (id_2, msg_2), (id_3, msg_3),]
我想要的是使用: async for msg in messages
然而,我的名单,很明显,不是异步迭代(I am使用sqlite3)如何可以将其转换为一个异步迭代表?
对不起,对于任何破英语...
所以,基本上,我有一个列表,其中包含的信息和他们的命运:
messages = [(id_1, msg_1), (id_2, msg_2), (id_3, msg_3),]
我想要的是使用: async for msg in messages
然而,我的名单,很明显,不是异步迭代(I am使用sqlite3)如何可以将其转换为一个异步迭代表?
你不需要"异步迭代清单"。 你可以只是循环通常:
for (id, msg) in messages:
# do things...
如果你 真的 需要一个"异步迭代表",可以把它喜欢这样,但是注意到这可能是很不必要的(而且,它也要求最近Python版):
async def make_async_iter(lst):
for item in lst:
yield item
...
async for item in make_async_list(messages):
# use item...
asyncio
任务是产生于每次更新,所以他们不会块。 唯一的问题发生,如果你阻止使用的方法(喜欢 time.sleep
而不是的 asyncio.sleep
).
@client.on(events.NewMessage)
所以我可以发送和接收信息的同时,但我试图让他们不框彼此整个事情不要停止工作。 3-我想我会得到一个更好看的例子。