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])
print([i ** 2 for i in X])
上面代码输出如下:
iter=>next: next: next: next: next: next: [1, 4, 9, 16, 25]
我的问题是,为何输出是连着 6 个“ next: ”然后才是列表,而不是形如“ next: 1 ”这种在“ next: ”后紧跟数字的方式?
谢谢
Python中关于列表解析的问题请教
我无法理解你的问题
python<br>class Iters: <br> def __init__(self, value): <br> self.data = value<br><br> def __iter__(self): <br> print('iter=>', end='') <br> self.ix = 0 <br> return self <br><br> def __next__(self): <br> print( 'next:', end=' ') <br> if self.ix== len(self.data): raise StopIteration <br> item = self.data[self.ix] <br> self.ix += 1 <br> return item<br><br><br>X = Iters([1, 2, 3, 4, 5]) <br>heihei = ([i ** 2 for i in X]) <br><br>print ('\n====================')<br><br>print (heihei)<br><br>
[symons@symons_laptop symons]$ python haha.py
iter=>next: next: next: next: next: next:
====================
[1, 4, 9, 16, 25]
看这个代码和运行结果就知道啦
因为你只在__next__里 print 了’next:’,没有 print self.data[self.ix]啊。。。


