Python での基本的なイテレータの構築
値のコレクションをカプセル化するクラスがあり、それを可能にするイテレータを作成するとします。
イテレータを構築するには、イテレータを実装します。プロトコル。
1 の 2 つのメソッドを定義する必要があります。 __iter__(): イテレータ オブジェクト自体を初期化して返します。
2. __next__(): シーケンス内の次の値を返すか、それ以上値がない場合は StopIteration を発生させます。
反復子の例:
次のクラスを考えてみましょう。のリスト値:
class Example: def __init__(self, values): self.values = values # __iter__ returns the iterable itself def __iter__(self): return self # __next__ returns the next value and raises StopIteration def __next__(self): if len(self.values) > 0: return self.values.pop(0) else: raise StopIteration()
使用法:
この反復子を使用すると、サンプル クラスの値を反復処理できます:
e = Example([1, 2, 3]) for value in e: print("The example object contains", value)
This出力します:
The example object contains 1 The example object contains 2 The example object contains 3
イテレータカスタマイズ:
上記の例で見られるように、イテレータの next メソッドは、値のフェッチ方法と返される方法を制御できるため、カスタマイズされたイテレータの柔軟性が向上します。
以上が`__iter__` と `__next__` を使用して Python でカスタム イテレータを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。