yield:
第一次遇到时返回yield后的推算,不执行yield后的代码,相当于暂停函数,next()下一次遇到yield时,继续从yield后执行。
g=[x**2 for x in range(5)]
这是一个可迭代对象
g=(x**2 for x in range(5))
这是一个生成器
来由:
生成器每次next()时依据yield后的算法生成,占用内存小。
菲波那切数列:
def f(m):
a=0
b=1
print(a)
for e in range(m):
yield a+b
a=a+b
b=a+b
print(b)
def main():
f(max)
main()