关于Python中的yield的理解
Posted 12james
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Python中的yield的理解相关的知识,希望对你有一定的参考价值。
生成器:yield表达式构成的函数就是生成器;每一个生成器都是一个迭代器(但是迭代器不一定是生成器)。return就是迭代器;
yield
的功能类似于return
,不同之处在于它返回的是生成器
。
什么是生成器,你可以通俗的认为,在一个函数中,使用了yield来代替return的位置的函数,就是生成器。
它不同于函数的使用方法是:函数使用return来进行返回值,每调用一次,返回一个新加工好的数据返回给你;yield不同,它会在调用生成器的时候,把数据生成object,然后当你需要用的时候,要用next()方法来取,同时不可逆。
def test():
for i in range(1,10):
yield i #装入
ob = test() #generator 类型
print next(ob) #1 释放的第一个装入的数据,(先入先出)
print next(ob) #2
print next(ob) #3
print next(ob) #4
return:return可以终止函数的执行,也可以返回函数加工的数据,但是需要把数据存入内存中;return之后后面的将不再执行;
yield:不会将所有数据取出来存入内存中;而是返回了一个对象;可以通过对象获取数据;用多少取多少,可以节省内容空间。除了能返回一个值,还不会终止循环的运行;
以上是关于关于Python中的yield的理解的主要内容,如果未能解决你的问题,请参考以下文章