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生成器的主要内容,如果未能解决你的问题,请参考以下文章

postman 自动生成 curl 代码片段

Apollo Codegen 没有找到生成代码的操作或片段

前端开发工具vscode如何快速生成代码片段

前端开发工具vscode如何快速生成代码片段

vscode代码片段生成vue模板

常用python日期日志获取内容循环的代码片段