1. 程式人生 > >Python 生成器和生成器表達式

Python 生成器和生成器表達式

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 生成器和生成器表達式