iterator - Python 中的可迭代性

标签 iterator python

我想了解 Python 中的可迭代性。

据我所知,__iter__() 应该返回一个定义了 next() 方法的对象,该方法必须返回一个值或引发 StopIteration异常(exception)。因此,我编写了满足这两个条件的类。

但是好像不行。怎么了?

class Iterator:
    def __init__(self):
        self.i = 1

    def __iter__(self):
        return self

    def next(self):
        if self.i < 5:
            return self.i
        else:
            raise StopIteration

if __name__ == __main__:
    ai = Iterator()
    b  = [i for i in ai]
    print b

最佳答案

您的 Iterator 类是正确的。你只是在这个声明中有一个错字:

if __name__ ==' __main__':

“__main__”字符串中有一个前导空格。这就是您的代码根本没有执行的原因。

关于iterator - Python 中的可迭代性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/649549/

相关文章:

Java - ListIterator 和 hasNext

python - OpenCV 中的数据类型

python - 在 Sklearn 中为 excel 输出着色

python - 如何在 Python curses 库中使用扩展字符?

python Pandas : How I can determine the distribution of my dataset?

python - some_dict.items() 是 Python 中的迭代器吗?

c++ - 字符串迭代器 + 偏移量超出范围

php - 遍历多个 RecursiveDirectoryIterator

c++ - std vector 迭代器不支持地址运算?

android - 将 GPS 数据从 Android 发送到 Django 的最聪明的方法