yield,generator type
来源:互联网 发布:nginx 访问根目录 编辑:程序博客网 时间:2024/05/16 13:48
yield语句只用于定义generator函数,调用generator函数会返回一个geneator对象g; 可以通过调用g的方法控制g的运行
generator内部的变量及调用栈等都可以在generator的运行/挂起过程中得到保存,这个特性跟corountine很像,实际上像Tornado等也是利用yield,异步IO等实现的协程。
def generator(): try: m = yield 0 print('m1', m) m = yield m print('m2', m) m = yield m print('m3', m) except TypeError: print('In generator type exception caught.') yield 5 try: yield 8 yield 9 finally: print('clean up')if __name__ == '__main__': gtr = generator() # 返回一个generator print(next(gtr)) # 运行至第一个yield语句结束并返回,gtr的局部变量,调用栈得到保留 print('before send 991') print(gtr.send(991)) # print(next(gtr)) print(gtr.throw(TypeError, "generator throw 1.")) print(next(gtr)) gtr.close()
输出:
0 # yield 第一个值0, 对应 yield 0before send 991 # 表明send还没运行且马上运行m1 991 # 已经执行了send, 执行了m = (yield 0)的结果,(yield 0)的结果为send传递进去的参数991991In generator type exception caught. # throw可以被caught58clean up # close 会导致finally部分的运行。after close
0 0
- yield,generator type
- yield / generator
- python generator / yield statement
- Python yield expression (generator)
- python中yield generator
- generator and yield
- Generator and yield
- python iterator generator yield
- Python yield and generator
- python yield和generator
- python yield generator
- python yield generator 详解
- python yield generator 详解
- python yield generator 详解
- python yield generator 详解
- Python Yield Generator 详解
- generator yield超详解
- Pythonic (二 yield上, Generator)
- 转载:void与void*详解
- window7安装python的xgboost库方法
- PoE供电、集中供电、点对点供电各自的优缺点
- 3.0、Android Studio构建和运行应用
- django 模型完整实例
- yield,generator type
- Android RocooFix 热修复框架
- C. Heap Operations(cf#357)
- SQLite添加新的字段
- 高效计算基础与线性分类器
- epoll
- PHP实现导入excel表格的代码
- yii框架-yii2分页的使用与扩展(十五)
- Java实验(5) 最大子方阵