【发布时间】:2018-02-22 18:46:02
【问题描述】:
以下 Python in a Nutshell 示例在延迟一秒半后将 x 设置为 23:
@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) 为主程序提供什么值?
谢谢。
【问题讨论】:
-
关于
asyncio.sleep准确率stackoverflow.com/a/65727201/13782669
标签: python python-3.x asynchronous