1
symons 2017-08-09 21:07:50 +08:00
你这 6 个 next:是在构建迭代器的时候输出的,然后最后输出的是[1, 4, 9, 16, 25]
|
2
symons 2017-08-09 21:13:32 +08:00
```python
class Iters: def __init__(self, value): self.data = value def __iter__(self): print('iter=>', end='') self.ix = 0 return self def __next__(self): print( 'next:', end=' ') if self.ix== len(self.data): raise StopIteration item = self.data[self.ix] self.ix += 1 return item X = Iters([1, 2, 3, 4, 5]) heihei = ([i ** 2 for i in X]) print ('\n====================') print (heihei) ``` [symons@symons_laptop symons]$ python haha.py iter=>next: next: next: next: next: next: ==================== [1, 4, 9, 16, 25] 看这个代码和运行结果就知道啦 |
3
jmc891205 2017-08-10 10:53:57 +08:00
因为你只在__next__里 print 了'next:',没有 print self.data[self.ix]啊。。。
|