【发布时间】:2020-12-06 04:30:37
【问题描述】:
我真的很想使用 python 协程来简化我的数据消费者,但我发现标准实现不是很优雅:
def printer():
print('setup')
try:
while True:
data = yield
print(data)
except GeneratorExit:
pass
print('cleanup')
有没有办法使用 for 循环来编写消费者?
def printer():
print('setup')
for data in yield_iterator():
print(data)
print('cleanup')
我尝试了一些不同的方法来封装yield 和GeneratorExit 的处理,但是一旦我将yield 移动到子函数printer() 就不再被识别为协程。
你知道用python编写协程的优雅方法吗?
【问题讨论】:
标签: python-3.x coroutine synchronous