如何使对象成为Python2和Python3迭代器?

Ale*_*sen 8 python iterator python-2.7 python-3.x

这篇Stack Overflow帖子是关于使一个对象成为Python中的迭代器.

在Python 2中,这意味着您需要实现一个__iter__()方法和一个next()方法.但是在Python 3中,您需要实现一个不同的方法,而不是next()您需要实现的方法__next__().

如何在Python 2和3中创建一个迭代器对象?

Mar*_*ers 24

只要给它__next__next方法; 一个可以是另一个的别名:

class Iterator(object):
    def __iter__(self):
        return self

    def __next__(self):
        # Python 3
        return 'a value'

    next = __next__  # Python 2
Run Code Online (Sandbox Code Playgroud)