python中Yield函式的理解
阿新 • • 發佈:2021-12-24
1:在實際應用中,在程式中列表長度過於龐大,佔用系統較大的記憶體,對於這個問題,
我們會用到 yield 函式(生成器)帶yield的函式是一個生成器,而不是一個函數了,這個生成器有一個函式就是next函式,
next就相當於“下一步”生成哪個數,這一次的next開始的地方是接著上一次的next停止的地方執行的,所以呼叫next的時候,
生成器並不會從foo函式的開始執行,只是接著上一步停止的地方開始,然後遇到yield後,return出要生成的數
def foo(): b = [3, 2, 4, 53, 33, 22] for i in b:print("遍歷列表的資料", i) """ Yield 相當於一個return 函式,跟ruturn 不同的是, 用了yield 函式,函式就變成了一個生成器,可以遍歷函式,也可以用 next() next函式會用上一次暫停位置啟動 """ yield 5 d = foo() print("這是一個生成器", d) print(next(d)) print(next(d)) print("**" * 20) for i in foo(): print(i)