【发布时间】:2018-01-25 00:44:55
【问题描述】:
我怀疑这与 b/w yield from 和 await 的差异有关。
但是,除了将新对象指定为async_generator 之外,我不清楚它与coroutine 之间差异的后果。
(除了我在标题中提出的问题,我不知道还能问什么问题......)
import asyncio
async def async_generator_spits_out_letters():
yield 'a'
yield 'b'
yield 'c'
yield 'd'
await asyncio.sleep(0)
async def coroutine_prints_messages():
while True:
print('hi')
await asyncio.sleep(2)
def test_it():
print(type(async_generator_spits_out_letters))
print(type(coroutine_prints_messages))
# This is how I choose to do newlines....it's easier for me to read. :[
print(); print()
print(type(async_generator_spits_out_letters()))
print(type(coroutine_prints_messages()))
这给出了:
<class 'async_generator'>
<class 'coroutine'>
<class 'function'>
<class 'function'>
我无法判断这个...
【问题讨论】:
-
生成器
yields,协程没有。 -
这是两者的唯一区别吗?
标签: python asynchronous generator python-asyncio coroutine