标签:base=(add(in) for python 迭代器 python生成器
def add(s,x): return s+x def gen(): for i in range(4): yield i base = gen() for n in [1,10]: base=(add(i,n) for i in base) print(list(base))n等于1时:
执行完base = (add(i, n) for i in base)
后base是:
i+n for i in [0,1,2,3]
接下来n=10:
base变为i+n for i in (i+n for i in [0,1,2,3])
此时n等于10,再去计算base, base一直是个生成器。
其中print list(base) 是对生成器进行迭代,此时n是按照10来计算。
标签:base=(add(in) for python 迭代器 python生成器
原文地址:http://blog.51cto.com/11736068/2088499