Python 迭代类方法next()和uuuuuuuuuuuuuuuuuuuuuu()的用途是什么,它们的区别是什么?

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

我对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 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()有什么区别?