Python 生成器和生成器表達式
阿新 • • 發佈:2018-12-13
strong 結果 for循環 bject for clas 轉換 UNC 位置
一. 生成器
什麽是生成器?
生成器實質就是叠代器.在python中有三種方式來獲取?生成器:
1. 通過?成器函數
2. 通過各種推導式來實現生成器
3. 通過數據的轉換也可以獲取生成器
def func(): print("111") return 222 ret = func() print(ret) 結果: 111 222
def func(): print("111") yield 222 ret = func() print(ret) 結果: <generator object func at 0x10567ff68>
yield 是分段執行這個函數體
生成器函數在執行的時候返回生成器. 而不是直接執行此函數
能向下執行的兩個條件:
__next__(), 執行到下一個yield
send(), 執行到下一個yield, 給上一個yield位置傳值
生成器的優點和特點
優點: 節省內存, 生成器本身就是代碼. 幾乎不占用內存
特點: 惰性機制, 只能向前. 不能反復
生成器表達式
(結果 for循環 if)
Python 生成器和生成器表達式