码迷,mamicode.com
首页 > 编程语言 > 详细

Python生成器

时间:2018-06-22 21:50:10      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:color   generator   get   save   code   target   class   name   main   

生成器的使用:

生成器--廖雪峰的网站 中提到:最难理解的就是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生成器

标签:color   generator   get   save   code   target   class   name   main   

原文地址:https://www.cnblogs.com/aaronhoo/p/9215465.html

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