資格スワイプ
入出力・エラーと例外・クラス・標準ライブラリ・対話環境(7,8,9,10,14章)

イテレータプロトコルに関する説明として、正しいものはどれか。

  • Aイテレータであるためには__getitem__()メソッドのみを実装していればよく、__next__()は不要である
  • ✓イテレータオブジェクトは__iter__()と__next__()メソッドを実装し、要素がなくなると__next__()がStopIteration例外を送出する
  • Cリストや辞書などのイテラブルなオブジェクトには、イテレータプロトコルは一切関係しない
  • D__next__()メソッドは呼び出すたびに常に同じ要素を返し続ける

解説

イテレータは__iter__()(自分自身を返す)と__next__()(次の要素を返す、なければStopIterationを送出する)を実装したオブジェクトである。for文はこのプロトコルを利用して要素を順に取り出している。

根拠9章 クラス(イテレータ)

← 前の問題次の問題 →
スワイプでまとめて流す