python里使用await关键字来等另外一个协程

来源:互联网 发布:数据整理分析报告模板 编辑:程序博客网 时间:2024/06/16 14:35

一个协程里可以启动另外一个协程,并等待它完成返回结果,采用await关键字,例子如下:

import asyncioasync def outer():    print('in outer')    print('waiting for result1')    result1 = await phase1()    print('waiting for result2')    result2 = await phase2(result1)    return (result1, result2)async def phase1():    print('in phase1')    return 'result1'async 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')


await关键字添加了一个新的协程到循环里,而不需要明确地添加协程到这个事件循环里。

Python游戏开发入门

http://edu.csdn.net/course/detail/5690

你也能动手修改C编译器

http://edu.csdn.net/course/detail/5582

纸牌游戏开发

http://edu.csdn.net/course/detail/5538 

五子棋游戏开发

http://edu.csdn.net/course/detail/5487
RPG游戏从入门到精通
http://edu.csdn.net/course/detail/5246
WiX安装工具的使用
http://edu.csdn.net/course/detail/5207
俄罗斯方块游戏开发
http://edu.csdn.net/course/detail/5110
boost库入门基础
http://edu.csdn.net/course/detail/5029
Arduino入门基础
http://edu.csdn.net/course/detail/4931
Unity5.x游戏基础入门
http://edu.csdn.net/course/detail/4810
TensorFlow API攻略
http://edu.csdn.net/course/detail/4495
TensorFlow入门基本教程
http://edu.csdn.net/course/detail/4369
C++标准模板库从入门到精通 
http://edu.csdn.net/course/detail/3324
跟老菜鸟学C++
http://edu.csdn.net/course/detail/2901
跟老菜鸟学python
http://edu.csdn.net/course/detail/2592
在VC2015里学会使用tinyxml库
http://edu.csdn.net/course/detail/2590
在Windows下SVN的版本管理与实战 
http://edu.csdn.net/course/detail/2579
Visual Studio 2015开发C++程序的基本使用 
http://edu.csdn.net/course/detail/2570
在VC2015里使用protobuf协议
http://edu.csdn.net/course/detail/2582
在VC2015里学会使用MySQL数据库
http://edu.csdn.net/course/detail/2672