【代碼學習】PYTHON 產生器

來源:互聯網
上載者:User

標籤:gen   作用   font   color   地方   計算   art   ext   參數   

一、產生器

一遍迴圈一遍計算的機制,稱為產生器

二、產生器的特點:

1、節約記憶體

2、迭代到下一次的調用時,所使用的參數都是第一次所保留下的,即是說,在整個所有函數調用的參數都是第一次所調用時保留的,而不是新建立的

三、建立方法

1、把列表產生式的[]改為()

#列表L = [x*2 for x in range(5)]print L#產生器G = (x*2 for x in range(5))print G

以上代碼運行結果

[0, 2, 4, 6, 8]<generator object <genexpr> at 0x0000000002E40AF8>

2、yield 產生

yield 自動終止返回結果。

迴圈從終止的地方向下進行

def  creatNum():    print ("----start----")    i = 0    while i < 5:        temp = yield i        print(temp)        i+= 1#建立一個產生器對象a = creatNum()#讓對象開始執行,第一次從頭開始執行,如果之前執行過,就從上一次停止的地方開始執行next(a)

以上代碼運行結果

----start---->>> next(a)None1>>> next(a)None2>>> a.send("SQYY")SQYY3>>> next(a)None4>>> 

四、補充:

send()

執行到yield時,gen函數作用暫時儲存send發送過來的值

c.next()等價c.send(None)

【代碼學習】PYTHON 產生器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.