首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从asyncio.sleep(延迟)`得到什么?

从asyncio.sleep(延迟)`得到什么?
EN

Stack Overflow用户
提问于 2018-12-12 04:40:39
回答 2查看 0关注 0票数 0

以下来自Nutshell中Python的示例设置 x23 延迟一秒半之后:

代码语言:javascript
复制
@asyncio.coroutine
def delayed_result(delay, result):
  yield from asyncio.sleep(delay)
  return result

loop = asyncio.get_event_loop()
x = loop.run_until_complete(delayed_result(1.5, 23))

我觉得很难理解什么是yield from asyncio.sleep(delay)

来自https://docs.python.org/3/library/asyncio-task.html#asyncio.sleep

Coroutine asyncio.sleep(delay, result=None, *, loop=None) 创建一个在给定时间(以秒为单位)后完成的协同程序。如果提供了结果,则在协程完成时将其生成给调用者。

所以asyncio.sleep(delay)返回一个协程对象。

协程对象“完成”是什么意思?

yield from asyncio.sleep(delay)为主体计划提供了什么?

谢谢。

EN

Stack Overflow用户

发布于 2018-12-12 14:07:18

yield from是用于3.5 await的python3.4语法,这可能更有意义。

“完成”只意味着协程的任务已经完成。

在这种情况下,您希望使用异步睡眠,以便在睡眠任务运行时计算其他任务,如果您正在运行其他并行任务/协程,则更有意义。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档