【发布时间】:2021-08-04 20:25:54
【问题描述】:
我正在创建一个迭代器,它接收一个列表并将其反转。出于某种原因,当我运行我的代码时,我不断得到“计数”未定义。一切似乎都缩进得很好,或者至少我认为。一些帮助将非常感激
这是我的代码:
class RevIter():
def __iter__(self):
self.nums = ( [1, 2 ,3, 4, 5] )
self. index = 0
return self
def __next__(self):
if self.index <= 6:
count = self.nums[self.index]
return count
else:
raise StopIteration
for i in RevIter():
print(count.reverse())
【问题讨论】:
-
为什么循环中的类外有
count? -
另外,你永远不会改变,
indexin__next__所以你的迭代器每次都会给你相同的值。 -
请注意,您的迭代器不接受任何参数。您可能想在
__init__中接受nums -
如果你想反转列表,你需要从
len() - 1开始索引并下降1直到0 -
不管怎样,这个错误很简单... 没有定义
count...为什么你认为应该有?你认为count指的是什么?