ホームページ > バックエンド開発 > Python チュートリアル > `__iter__` と `__next__` を使用して Python でカスタム イテレータを構築する方法

`__iter__` と `__next__` を使用して Python でカスタム イテレータを構築する方法

Patricia Arquette
リリース: 2024-12-17 14:56:17
オリジナル
854 人が閲覧しました

How to Build Custom Iterators in Python Using `__iter__` and `__next__`?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート