python迭代器的接口是什么?

Ari*_*ion 5 python iterator interface

可能重复:
构建一个基本的Python迭代器

定义迭代器所需的方法是什么?例如,在下面的Infinity迭代器中,它的方法是否足够?是否有其他标准或de因子标准方法定义迭代器?

class Infinity(object):
    def __init__(self):
        self.current = 0

    def __iter__(self):
        return self

    def next(self):
        self.current += 1
        return self.current
Run Code Online (Sandbox Code Playgroud)

And*_*ark 7

你拥有的东西足以支持Python 2.x,但是在Python 3.x中你需要定义函数__next__而不是next,请参阅PEP 3114.

如果您需要与2.x和3.x兼容的代码,请同时包含两者.

  • @Arion:要定义两者,只需在类的主体末尾添加语句`__next__ = next`. (2认同)