少說話多寫程式碼之Python學習052——類的成員(實現生成器)
前面我們知道類中定義__iter__可以實現迭代器,我們再看看另一個概念,叫生成器。生成器和迭代器是Python中近幾年引入的顯著地兩個特性。
生成器是用普通的函式語法定義的迭代器。
又這樣一個數組:sequen=[[1,2],[3,4],[5]]。我們要按順序打印出來,
def flatten(seq): for list in seq: for item in list: yielditem
程式碼中,yield是一個新的語句,函式中包含了yield語句,則該函式稱之為生成器。使用yield每次產生一個值,函式就被凍結,函式停在這個點直到被重新喚醒後從該點繼續執行。
看看呼叫
sequen=[[1,2],[3,4],[5]] for item in flatten(sequen): print(item)
輸出
也可以這樣使用
print(list(flatten(sequen)))
輸出
[1, 2, 3, 4, 5]
工程檔案下載:ofollow,noindex" target="_blank">https://download.csdn.net/download/yysyangyangyangshan/10821883