Python - イテレータ

イテレータ

イテレータ (iterator) は for 文で使用できる繰り返し機能を持つオブジェクトです。イテレータオブジェクトは __iter__()next() メソッドを持つオブジェクトを返却します。next() メソッドは次の要素を返却し、最後に達すると StopIteration 例外を返します。

class MyClass:
    def __init__(self):
        self.data = (1, 2, 3, 4, 5)
        self.index = 0
    def __iter__(self):
        return self
    def next(self):
        if self.index < len(self.data):
            self.index += 1
            return self.data[self.index - 1]
        else:
            raise StopIteration

for n in MyClass():
    print(n)
    # 1, 2, 3, 4, 5
イテレータ

関連記事