多工 協程之生成器

2022-09-05 21:18:21 字數 585 閱讀 4962

1.生成器的概念

利用迭代器,我們可以在每次迭代獲取資料(通過next()方法)時按照特定的規律進行生成。但是我們在實現乙個迭代器時,關於當前迭代到的狀態需要我們自己記錄,進而才能根據當前狀態生成下乙個資料。為了達到記錄當前狀態,並配合next()函式進行迭代使用,我們可以採用更簡便的語法,即生成器(generator)。生成器是一類特殊的迭代器。

2.生成器的建立方法

(1)直接法

g = ( x*2 for x in range(5))

採用這種方法來建立生成器,可以在shell命令視窗直接檢視g的屬性

(2)使用yield的函式

可以使用next()函式讓生成器從斷點處繼續執行,即喚醒生成器(函式)

python3中的生成器可以使用return返回最終執行的返回值,而python2中的生成器不允許使用return返回乙個返回值(即可以使用return從生成器中退出,但return後不能有任何表示式)。

(3)send()函式同樣可以起到喚醒的作用

大致的功能和next()的作用相似,但是send()可以在括號內填寫乙個可供輸出的引數

Python 生成器,協程

生成器可以簡單有效的建立龐大的可迭代物件,而不需要在直接在記憶體中建立儲存整個序列 可以使用生成器推導式或者生成器函式來建立生成器 生成器函式返回資料時使用yield語句,而不是使用return def countdown n print counting down from d n while n...

多工 協程

示例 import time defwork1 while true print 正在掃地 yield defwork2 while true print 正在搬磚 yield w1 work1 w2 work2 協程肯定是併發執行 while true next w1 next w2 greenl...

設計模式 眾多任務廠 生成器 命令 模板 組合

什麼gof或者這書那書上有很多提到工廠的,簡單工廠,工廠方法,抽象工廠,太多了。工廠 總結一下,工廠,字面上就是根據需要不停生產東東的。簡單工廠就是選擇實現,工廠方法說是可以將實現延遲到子類 抽象類實現 定義需要覆寫的方法 實現,而抽象工廠則是用介面進行一步抽象實現,從而實現更高層次的隔離。publ...