python面试
# 面试题 def demo(): for i in range(4): yield i g=demo() g1=(i for i in g) g2=(i for i in g1) print(list(g1)) print(list(g2)) 结果: [0, 1, 2, 3] [] def add(n,i): return n+i def test(): for i in range(4): yield i g=test() for n in [1,3,10]: g=(add(n,i) for i in g) print(list(g)) 结果: [30, 31, 32, 33] # 一个生成器 只能取一次 # 生成器在不找它要值的时候始终不执行 # 当他执行的时候,要以执行时候的所有变量值为准