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)