大家好,如果您还对yield是什么意思不太了解,没有关系,今天就由本站为大家分享yield是什么意思的知识,包括python中yield什么意思的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
1、python中yield什么意思?
2、mylist是一个可迭代的对象。当你使用一个列表生成式来建立一个列表的时候,就建立了一个可迭代的对象:
3、>>>mylist=[x*xforxinrange(3)]
4、在这里,所有的值都存在内存当中,所以并不适合大量数据
5、>>>mygenerator=(x*xforxinrange(3))
6、>>>foriinmygenerator:
7、注意你之后不能再使用foriinmygenerator了
8、yield是一个类似return的关键字,只是这个函数返回的是个生成器
9、当你调用这个函数的时候,函数内部的代码并不立马执行,这个函数只是返回一个生成器对象
10、当你使用for进行迭代的时候,函数中的代码才会执行
11、>>>defcreateGenerator():
12、>>>mygenerator=createGenerator()#createagenerator
13、>>>print(mygenerator)#mygeneratorisanobject!
14、<generatorobjectcreateGeneratorat0xb7555c34>
15、>>>foriinmygenerator:
16、第一次迭代中你的函数会执行,从开始到达yield关键字,然后返回yield后的值作为第一次迭代的返回值.然后,每次执行这个函数都会继续执行你在函数内部定义的那个循环的下一次,再返回那个值,直到没有可以返回的。
17、>>>classBank():#let'screateabank,buildingATMs
18、>>>hsbc=Bank()#wheneverything'soktheATMgivesyouasmuchasyouwant
19、>>>corner_street_atm=hsbc.create_atm()
20、>>>print(corner_street_atm.next())
21、>>>print(corner_street_atm.next())
22、>>>print([corner_street_atm.next()forcashinrange(5)])
23、['$100','$100','$100','$100','$100']
24、>>>hsbc.crisis=True#crisisiscoming,nomoremoney!
25、>>>print(corner_street_atm.next())
26、<type'exceptions.StopIteration'>
27、>>>wall_street_atm=hsbc.create_atm()#it'seventruefornewATMs
28、>>>print(wall_street_atm.next())
29、<type'exceptions.StopIteration'>
30、>>>hsbc.crisis=False#troubleis,evenpost-crisistheATMremainsempty
31、>>>print(corner_street_atm.next())
32、<type'exceptions.StopIteration'>
33、>>>brand_new_atm=hsbc.create_atm()#buildanewonetogetbackinbusiness
34、>>>forcashinbrand_new_atm:
35、以上就是python中yield什么意思的详细内容,更多请关注其它相关文章!
文章到此结束,如果本次分享的yield是什么意思和python中yield什么意思的问题解决了您的问题,那么我们由衷的感到高兴!