今天看了看生成器,有个要点,做个记录。
G=( c*4 for c in 'asdf')
I=iter(G)
next(I)
next(I)
next(I)
next(I)
next(I)
此时抛出异常没因为已经没有迭代对象了。但是实际上 next(G)也是可行的,不这么做的原因只有一个:如果这么做了,迭代到最后,假如还要使用这个生成器,那么只能重新执行:G=( c*4 for c in 'asdf');而如果使用了I=iter(G),那么重新I=iter(G),即可。