1. 程式人生 > >python 面試題之 生成器

python 面試題之 生成器

如下函式執行結果是什麼?

答案:  [20, 21, 22, 23]

核心要點:本題重點在對生成器的理解, 生成器具有惰性機制 ,只有在取值的時候才執行.

解析:

for 迴圈遍歷列表,執行了兩次

第一次 n =2, 第二次 n = 10 

但是在這個過程中      g = (add(n, i) for i in g)  並沒有執行, 因為只有在取值的時候才會執行

直到程式碼執行到  print(list(g))  生成器才被執行

所以原始碼等價於如下程式碼: