欢迎加入QQ讨论群258996829
麦子学院 头像
苹果6袋
6
麦子学院

Python学习之由生成器构成的协程语法详解

发布时间:2017-09-08 22:33  回复:0  查看:2370   最后回复:2017-09-08 22:33  
本文和大家分享的主要是python 由生成器构成的协程语法相关内容,一起来看看吧,希望对大家 学习python有所帮助。
  虽然在python3.5 版本之后增加 async def await 语法,但是之前的 asyncio.coroutine() 生成器的装饰器还是可以使用的,并且使用 yield from 的语法,实际同样的效果,代码如下:
   import asyncio
  @asyncio.coroutine def  outer():
  print('in outer')
  print('waiting for result1')
  result1 =  yield  from phase1()
  print('waiting for result2')
  result2 =  yield  from phase2(result1)
   return (result1, result2)
  @asyncio.coroutine def  phase1():
  print('in phase1')
   return 'result1'
  @asyncio.coroutine def  phase2(arg):
  print('in phase2')
   return 'result2 derived from {}'.format(arg)
  event_loop = asyncio.get_event_loop() try:
  return_value = event_loop.run_until_complete(outer())
  print('return value: {!r}'.format(return_value)) finally:
  event_loop.close()
  结果输出如下:
  in outer
  waiting for result1
  in phase1
  waiting for result2
  in phase2
  return value: ('result1', 'result2 derived from result1')
  可以看到跟前面的例子运行结果是一样的。
来源: 大坡3D 软件开发
您还未登录,请先登录

热门帖子

最新帖子