如何用python写一个协程

2024-11-29 15:34:33
推荐回答(1个)
回答1:

是个很长的问题,我提供一下我理解的题主你的问题:
我学习了asyncio的协程,现在在我的印象中一个协程有两个要素:
* 用`asyncio.coroutine`装饰
* 用`yield from`调用其他协程
我想要了解协程是什么,所以做了以下尝试。
我经过尝试,发现运行构造出来的协程得到的是一个`generator`(迭代器)。
而最常规的迭代器生成使用的是`yield`。
所以同样是生成迭代器,那协程是否可以用`yield`而不是`yield from`。
我经过尝试,发现协程的调用有特殊的方式。
而最常规的迭代器都是直接调用就可以的。
所以,同样是函数,那协程是否可以脱离`event_loop`(消息循环)调用。
我还尝试过通过`yield`构造一个协程。
没有报错也运行成功了,所以应该没有问题。