浅析Python中yield关键词的作用与用法
前言 为了理解yield是什么,首先要明白生成器( >>> mylist = [1,2,3] >>> for i in mylist : ... print(i) 1 2 3
>>> mylist = [x*x for x in range(3)] >>> for i in mylist : ... print(i) 0 1 4 可以使用“ 生成器同样是可迭代对象,但是你只能读取一次,因为它并没有把所有值存放内存中,它动态的生成值: >>> mygenerator = (x*x for x in range(3)) >>> for i in mygenerator : ... print(i) 0 1 4 看起来除了把 [] 换成 () 外没什么不同。但是,你不可以再次使用
>>> def createGenerator() : ... mylist = range(3) ... for i in mylist : ... yield i*i ... >>> mygenerator = createGenerator() # create a generator >>> print(mygenerator) # mygenerator is an object! <generator object createGenerator at 0xb7555c34> >>> for i in mygenerator: ... print(i) 0 1 4 这个示例本身没什么意义,但是它很清晰地说明函数将返回一组仅能读一次的值,要想掌握yield,首先必须理解的是:当你调用生成器函数的时候,如上例中的 第一次迭代中你的函数会执行,从开始到达 如果生成器内部没有定义 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能有所帮助,如果有疑问大家可以留言交流。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |