摘要:
在函數內部使用yield定義,這個函數就是一個生成器函數。 調用生成器函數的時候會返回一個生成器對象。 生成器函數內部,使用yield可以產生數據。 生成器對象內還有一個方法send,send方法可以由外部向內部進行傳值。 執行過程: 當執行gen=MyGenerator()會直接生成返回一個生成器
閱讀全文
摘要:
如果一個函數定義中包含yield關鍵字,那么這個函數就不再是一個普通函數,而是一個generator函數, generator和函數的執行流程不一樣。 函數是順序執行,遇到return語句或者最后一行函數語句就返回。 而變成generator的函數,在每次調用next()的時候執行,遇到yield語
閱讀全文
摘要:
上圖的這些模式,都是以list對象和操作符[]來獲取元素,而索引只是作為參數。這是一種迭代模式。 有沒有一種模式,元素的提取只和下標打交道,而和可迭代對象無關。這樣的一種設計模式,就是迭代器模式 for i in [1, 2, 3, 4]: print(i) for c in "python": p
閱讀全文