【发布时间】:2017-07-11 17:44:54
【问题描述】:
我正在尝试做这样的事情:
import asyncio
from itertools import islice
async def generate_numbers(n):
for x in range(n):
yield x
async def consume_numbers(n):
async for x in generate_numbers(n):
print(x)
async def consume_some_numbers(n,m):
async for x in islice(generate_numbers(n),m): #<-- This doesn't work. islice doesn't recognize async iterators as iterators.
print(x)
loop = asyncio.get_event_loop()
loop.run_until_complete(consume_numbers(10))
loop.run_until_complete(consume_some_numbers(10,5))
有没有办法让它工作,或者至少获得类似的功能?
【问题讨论】:
-
检查我的unordered_bulks,因为 aislice 按顺序运行它们,在大多数情况下这不是你想要的。
标签: iterator itertools python-asyncio python-3.6