如下函数执行结果是什么?
答案: [20, 21, 22, 23]
核心要点:本题重点在对生成器的理解, 生成器具有惰性机制 ,只有在取值的时候才执行.
解析:
for 循环遍历列表,执行了两次
第一次 n =2, 第二次 n = 10
但是在这个过程中 g = (add(n, i) for i in g) 并没有执行, 因为只有在取值的时候才会执行
直到代码执行到 print(list(g)) 生成器才被执行
所以原代码等价于如下代码:
如下函数执行结果是什么?
答案: [20, 21, 22, 23]
核心要点:本题重点在对生成器的理解, 生成器具有惰性机制 ,只有在取值的时候才执行.
解析:
for 循环遍历列表,执行了两次
第一次 n =2, 第二次 n = 10
但是在这个过程中 g = (add(n, i) for i in g) 并没有执行, 因为只有在取值的时候才会执行
直到代码执行到 print(list(g)) 生成器才被执行
所以原代码等价于如下代码:
转载于:https://www.cnblogs.com/Arvin2018/p/9932298.html