码迷,mamicode.com
首页 > 其他好文 > 详细

生成器函数进阶

时间:2018-09-05 00:48:54      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:play   接收   __next__   none   传递   ide   open   src   使用   

  1.生成器函数进阶(一)

技术分享图片
 1 # 生成器函数进阶
 2 
 3 def generator():
 4     print(123)
 5     num = yield 1   # 当第一个__next__发生时,yiled 1先被执行,被返回,停在了这里,之后当send来了后,send的参数先赋值给了yield的左值,之后再执行下一个yield之前的代码
 6                     # send()获取yield值之前,会给上一个yield的位置传递一个参数数据,这个数据可以被上一个yield的左值接收
 7                     # 使用生成器的send()方法,就是在触发yield时,会将send传递过去的参数赋值到上一个yield的左值位置,然后在执行上一次yield和本次触发yield之间的代码
 8     print(----, num)
 9     print(456)
10     yield 2
11 
12 g = generator()
13 ret = g.__next__()
14 print(**, ret)
15 # send()调用后,会在获取下一个yield值之前,会给上一个yield的位置传递一个参数数据,这个数据可以被上一个yield的左值接收
16 ret = g.send(hello)   # ---- hello\n456  和__next__效果类似,只不过多了一个将参数赋值给了上一个yield,可以赋值给上一个yield的左值
17 print(**, ret)
View Code

 

生成器函数进阶

标签:play   接收   __next__   none   传递   ide   open   src   使用   

原文地址:https://www.cnblogs.com/whylinux/p/9589128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!