实例讲解Python中的yield协程

 时间:2024-10-25 04:25:32

1、打开Python开发工具IDLE,新建‘yieldpro.py’,并写代码如下;def testcoroutine(): print ('start') c = yield print ('over')print (testcoroutine())

实例讲解Python中的yield协程

2、F5运行程序,并没有打印出‘start’,而是一个生成器。<generator object testcoroutine at 0x0000000002F62570>

实例讲解Python中的yield协程

3、next触发生成器函数执行(也可以用 send(None)),当yield右侧没有值时,返回Nonedef testcoroutine(): print (&垆杪屑丝#39;start') c = yield print ('over')print (testcoroutine())mycor = testcoroutine()print (next(mycor))

实例讲解Python中的yield协程

4、F5运行程序,打印出‘start’和yield返回值‘None’

实例讲解Python中的yield协程

5、给yield左侧赋值要用send,代码如下;def testcoroutine(): print ('start') c = yield print (c) print ('over')print (testcoroutine())mycor = testcoroutine()print (next(mycor))mycor.send(2)

实例讲解Python中的yield协程

6、F5运行程序,最后抛出的异常是正常的,在程序中要捕获这个异常进行处理。

实例讲解Python中的yield协程

7、生成器还有close方法,当调用了close方法再用next或send就会抛出异常。def testcoroutine(): print ('start') c = yield d = yield print (c) print ('over')print (testcoroutine())mycor = testcoroutine()print (next(mycor))mycor.close()print (next(mycor))

8、F5运行程序,抛出异常,如果注释掉close()方法,就不会

实例讲解Python中的yield协程
  • 实例讲解Python迭代器的概念
  • Python中yield使用方法
  • Python __init__()方法实例解读
  • Python实例讲解XPath语法
  • java中 for循环的使用实例
  • 热门搜索
    蒂森克虏伯电梯怎么样 冒险岛4怎么爬柱子 长春大学怎么样 红米手机怎么root 净资产收益率怎么算 西安建筑科技大学怎么样 头发毛躁怎么办 婴儿吐奶怎么回事 泥鳅怎么杀 螳螂怎么玩