Python生成器
Posted morein2008
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python生成器相关的知识,希望对你有一定的参考价值。
生成器的使用:
生成器--廖雪峰的网站 中提到:最难理解的就是generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()
的时候执行,遇到yield
语句返回,再次执行时从上次返回的yield
语句处继续执行。
其实,理解生成器的yield关键在于:yield的作用与return类似,yield a语句会返回一个a给生成器调用者,然后不再执行后面的代码,等到下次再次调用生成器函数时,再接着上次返回的位置继续执行,然后再次止步于yield a。
自己写的用于读取文件的生成器函数 readLimitedCSV
#encoding:utf-8 def readTxt(): with open(‘../data/doc.txt‘,‘r‘,encoding=‘utf-8‘) as f: for line in f.readlines(): print(line) def readLimitedCSV(rows=5): with open(‘../data/actor.csv‘,‘r‘,encoding=‘utf-8‘) as f: for i in range(rows): yield f.readline() def save(): with open(‘../data/result.csv‘,‘w‘) as f: for i in readLimitedCSV(): f.write(i) if __name__==‘__main__‘: save() print("我爱中国") a,b,c=3,4,5 a,b,c=a+b,b+c,a+c print(a,b,c)
以上是关于Python生成器的主要内容,如果未能解决你的问题,请参考以下文章