python由生成器构成的协程语法
2017-09-06 15:51
671 查看
虽然在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')
可以看到跟前面的例子运行结果是一样的。
五子棋游戏开发
http://edu.csdn.net/course/detail/5487
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')
可以看到跟前面的例子运行结果是一样的。
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
相关文章推荐
- python基础之协程函数、列表表达式、生成器表达式
- Python学习总结笔记(7)-- 生成器与协程
- 013 Python语法之文件与生成器
- Python 中的黑暗角落(二):生成器协程的调度问题
- python与协程(1/3):生成器与协程
- python 生成器协程运算实例
- python 生成器与协程
- 有关python生成器和协程
- Python 进阶语法三——生成器
- Python语法实践之初探列表推导与生成器
- Py修行路 python基础 (十二) 协程函数应用 列表生成式 生成器表达式
- 每日一题_Python.利用yield生成器实现协程下的tps透明传输CS测试
- python学习笔记-生成器,迭代器,协程定义
- python拗口语法点总计1:迭代器、生成器、元组
- python--生成器协程运算
- python拗口语法点总计1:迭代器、生成器、元组
- python基础----迭代器、生成器、协程函数及应用(面向过程实例)
- 010 Python语法之二维列表-迭代器生成器
- Python中的生成器和协程
- Python中的迭代器,生成器,协程(coroutine)--整理自CSDN微信公开课