class TestIterator:
value = 0
def next(self):
self.value += 1
if self.value > 10:
raise StopIteration
return self.value
def __iter__(self):
return self
为什么这段代码运行出错,
>>>ti =TestIterator()
>>>ti.next()
1
>>>ti.next()
2
>>>list(ti)
Traceback (most recent call last):
File "
list(ti)
TypeError: iter() returned non-iterator of type 'TestIterator'
书本也是这样写的,这段代码似懂非懂状态,我用的是Python3.5,书本说兼容3.x版本的。不知道为什么出错。
为什么类方法next()数据不能储存?
书本list(ti)会输出[1,2,3......10]的.。
list()不能只有一个数据吗?因为我随便赋值a=1,list(a)也会出错,应该怎么都输出一个数据啊,比如>>>list(ti.next())会输出【1】吧,为什么?
我的是Python3.6版本出错,出错如下:
Traceback (most recent call last):
File"
list(ti)
TypeError:iter() returned non-iterator of type 'TestIterator'