1. 程式人生 > >python的yield生成器簡單理解

python的yield生成器簡單理解

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()