生成器有什麼用?
簡單來說,他能有效的幫我們提高程序運算速度和節約內存空間。
生成器是怎麼工作的?
每一次調用生成器,生成器都會從上一次出現yeild的地方繼續運行代碼。如果是第一次運行生成器,那麼生成器就會從函數的一開始開始運行(從接收參數的地方開始)。
def gen(num):
for i in range(num):
yield i ** 2#每次調用這個生成器執行到這個地方停止了,等待下次再調用繼續從這個地方運行。
def main():
scq = gen(5) #返回生成器對象
for i in scq: #也可以這樣寫 for i in gen(5),這樣寫後上面那條語句就可以不要了
print(i)
main()
返回結果
0
1
4
9
16