Python迭代器没有hasNext
方法吗?
发布于 2018-01-05 04:04:41
到目前为止,我解决问题的方法是保持迭代的对象数量的计数。我想使用对一个实例方法的调用来迭代一个集合。因为我知道集合的长度,以及到目前为止计算的项目数,所以我实际上有了一个hasNext
方法。
我的代码的一个简单版本:
class Iterator:
# s is a string, say
def __init__(self, s):
self.s = set(list(s))
self.done = False
self.iter = iter(s)
self.charCount = 0
def next(self):
if self.done:
return None
self.char = next(self.iter)
self.charCount += 1
self.done = (self.charCount < len(self.s))
return self.char
def hasMore(self):
return not self.done
当然,该示例是一个玩具示例,但您可以理解其中的含义。这在无法获得迭代器长度的情况下不起作用,比如生成器等。
https://stackoverflow.com/questions/1966591
复制相似问题