生成器(generator,yield),next,send
2018-10-29 15:30:43来源:博客园 阅读 ()
#生成器 def generator(): for i in range(200): yield '哇哈哈%s' %i g = generator() #调用生成数函数,接受作用 ret = g.__next__() #每执行一次g.__next__就是从生成器取值 print(ret) ret = g.__next__() #每执行一次g.__next__就是从生成器取值
print(ret)
def generator(): for i in range(200): yield '哇哈哈%s' %i g = generator() #调用生成数函数,接受作用 ret = g.__next__() #每执行一次g.__next__就是从生成器取值 print(ret) ret = g.__next__() #每执行一次g.__next__就是从生成器取值 print(ret) num = 0 for i in g: num += 1 if num > 10: break print(i)
生成器的作用:一条一条输出,输出一个获取一个,不像return,输出后就马上返回,不能执行后面的函数。
!!!send 获取下一个值的效果和next基本一致,但是获取下一个值时,要给上一个yield的位置传递一个数据。
!!!第一次使用生成器时,是用next获取下一个值,最后一个yield不能接受外部的值
#next send def generator(): print(123) content = yield 1 print('======',content) print(456) yield 2 g = generator() #调用生成数函数,接受作用 ret = g.__next__() #每执行一次g.__next__就是从生成器取值 print('***',ret) ret = g.send('hello') #send的效果和next一样 print('***',ret)
最后一个yield如果想使用的话,解决办法如下:
def generator(): print(123) content = yield 1 print('======',content) print(456) arg = yield 2 '''''' yield
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:python基础知识你学会了多少
- Python学习日记(十) 生成器和迭代器 2019-08-13
- python学习-39 生成器总结 2019-07-24
- python学习-38迭代器和生成器 2019-07-24
- Python-11-生成器 2019-07-24
- Python进阶:生成器--懒人版本的迭代器 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash