Python 迭代类方法next()和uuuuuuuuuuuuuuuuuuuuuu()的用途是什么,它们的区别是什么?
我对python迭代器有点迷茫。我偶尔会使用它们,但我不记得自己创建了一个。我从某个我不记得在哪里的地方读到这样的代码:Python 迭代类方法next()和uuuuuuuuuuuuuuuuuuuuuu()的用途是什么,它们的区别是什么?,python,iterator,Python,Iterator,我对python迭代器有点迷茫。我偶尔会使用它们,但我不记得自己创建了一个。我从某个我不记得在哪里的地方读到这样的代码: class Foo(object): def __init__(self): self.something = "initial_value" def __iter__(self): return self def next(self): # I don't quite remember what was
class Foo(object):
def __init__(self):
self.something = "initial_value"
def __iter__(self):
return self
def next(self):
# I don't quite remember what was here :S
return self.something
我猜
\uuu iter\uu()
方法应该返回一个迭代器,迭代器应该有下一个方法,对吗?那么\uuuuuuuuuuuuuuuuuuuuuuuuu()
方法呢?它是否用于直接迭代一个类而不返回另一个迭代器(使用\uuuu iter\uuuu()
方法?next
在Python 3中已重命名为\uuuuuuuu next
。至于它做了什么,它应该返回下一个项目,或者如果没有更多的项目,则提高StopIteration
。重命名iterator.next()
到iterator.\uuuuuuuuu next\uuuuu()
。这是在3.0版中实现的。上面的链接包含所有血淋淋的细节。foo是一个迭代器。在这种情况下,它只是返回自身。对象可以支持迭代,但不能是迭代器。我想你的意思是迭代器这与iter()有什么区别?