【Python 超初心者向け】python3 __iter__()の使い方

プログラミングしている

こんにちは,ティロです.

まだまだPython修行中の身で,他人のソースコードを読んでいる際に

があり,「なんじゃこれ」となったので自分なりに使い方を書き留めておきます.

まず__iter__()はイテレータで要素を反復して取り出すことのできるものらしいです.
こちらの記事に詳しく書いてあります.

 

サンプルコードを見てください.

インスタンスをfor文で回すと__iter__のyieldが順に返されます.

yieldは通常の関数のreturn文と同様ですが,サンプルコードのように複数でも大丈夫です.

次に単に値を返すのではなく,ある処理をしてから値を返したい場合は__next__を使用します.

raise stopIteration()は例外処理で,__next__()が呼ばれます.

上のコードではインスタンスでnumに1を指定し,__next__()でself._numが5以上になるまでfor文の繰り返し処理がされます.