2024-05-16 16:01:49 发布
网友
在python3.6中,如果我想迭代一个范围,我可以简单地这样做
for i in range(100): pass
但是,如果我想异步迭代一个范围,我应该怎么做?我做不到
因为range不是AsyncIterable对象。我可以考虑的一个解决方案是将range子类化并定义__aiter__方法。不过,对我来说,它真的不是Python。在不定义自己的类的情况下,有什么好的方法/库来实现这一点吗?在
range
AsyncIterable
__aiter__
这应该做到:
async def myrange(start, stop=None, step=1): if stop: range_ = range(start, stop, step) else: range_ = range(start) for i in range_: yield i await asyncio.sleep(0)
https://www.python.org/dev/peps/pep-0525/#asynchronous-generator-object
可以改用range()的示例函数:
async def arange(count): for i in range(count): yield(i)
这应该做到:
https://www.python.org/dev/peps/pep-0525/#asynchronous-generator-object
可以改用range()的示例函数:
相关问题 更多 >
编程相关推荐