生成器和一般的函數的最大區別是一個生成器yield一個值,而不是return一個值。yield語句會將函數掛起,並向他的調用者返回一個值,但是保存足夠的信息狀態爲了讓其能夠在從他掛起的地方恢復。這能夠允許這些函數不斷產生一系列值,而不是一次產生所有值,之後將值以類似列表的形式返回。
包含了yield語句的函數將被編譯爲生成器。
儘管上面的例子我們也可以使用for,map或者列表解析的技術實現,但生成器在第一線做了所有工作,當結果列表很大或者處理每一個結果都需要很長時間時,這一點就很有用。
生成器和一般的函數的最大區別是一個生成器yield一個值,而不是return一個值。yield語句會將函數掛起,並向他的調用者返回一個值,但是保存足夠的信息狀態爲了讓其能夠在從他掛起的地方恢復。這能夠允許這些函數不斷產生一系列值,而不是一次產生所有值,之後將值以類似列表的形式返回。
包含了yield語句的函數將被編譯爲生成器。
儘管上面的例子我們也可以使用for,map或者列表解析的技術實現,但生成器在第一線做了所有工作,當結果列表很大或者處理每一個結果都需要很長時間時,這一點就很有用。
繼續運行 ?* 回憶上次內容 上次使用shell環境中的命令 命令 作用 c