客観的な定義はありますか?それはPythonのソースコードの断片として実装されていますか?もしそうなら、誰かが正確なコード行を生成できますか?すべての言語を、例えば 'for'ステートメントイテレータプロトコルと一緒に使っているのでしょうか?Pythonの反復子プロトコルは正確に何ですか?
11
A
答えて
17
は、それは、ドキュメント内hereあります:
container.__iter__()
戻りイテレータオブジェクト:コンテナオブジェクトは、反復サポートを提供するため
一つの方法を定義する必要があります。このオブジェクトは、後述のイテレータプロトコルをサポートする必要があります。コンテナが異なるタイプの反復をサポートしている場合は、それらの反復タイプの反復子を具体的に要求する追加のメソッドを提供することができます。 (繰り返しの複数のフォームをサポートするオブジェクトの例は、幅優先と深さ優先の両方をサポートするツリー構造です)。このメソッドは、Python/C APIのPythonオブジェクトの型構造のtp_iter
スロットに対応します。
反復子自体が一緒イテレータプロトコルを形成する以下の2つのメソッドをサポートするために必要とされているオブジェクト:
iterator.__iter__()
戻りイテレータオブジェクト自体。これは、コンテナとイテレータの両方をfor文とin文で使用できるようにするために必要です。このメソッドは、Python/C APIのPythonオブジェクトのタイプ構造のtp_iter
スロットに対応しています。
iterator.next()
戻るコンテナから次の項目。それ以上アイテムがない場合は、StopIteration例外を発生させます。このメソッドは、Python/C APIのPythonオブジェクトの型構造のtp_iternext
スロットに対応しています。
関連する問題
- 1. Alef反復演算子とは何ですか?
- 2. `:class`はプロトコル宣言のなかで正確に何をしますか?
- 3. poset反復実装の正確
- 4. 反復子が反復子を反復することからの反復論理
- 5. Forループのタプルと反復子Python
- 6. Pythonは反復子をペアで使用します
- 7. Javaの反復子
- 8. Pythonの反復
- 9. 反復のPython
- 10. 反復によるK-Means反復を確認するプログラムですか?
- 11. Flinkの一括反復演算子とwhileループの違いは何ですか?
- 12. Python rtree nearest - 正確には何ですか?
- 13. sys.stdin.read()はPythonで正確に何を返しますか?
- 14. ポートは正確には何ですか?
- 15. 正確には.bash_profile.pysaveは何ですか?
- 16. アクセス違反の範囲は「0xc0000005」と正確には何ですか?
- 17. 反復処理は/ pythonの
- 18. 子孫のリストを持つ木を使ったpython反復子
- 19. HashMap反復子ConcurrentModificationException
- 20. QValueList逆反復子
- 21. ベクトル反復子dereferncable ....?
- 22. Python、ループ、反復
- 23. Pythonリスト、反復
- 24. 反復 - Python
- 25. コンストラクタは正確に何ですか?
- 26. 正確にクロージャは何ですか?
- 27. Redisインスタンスは正確に何ですか?
- 28. データベーススキーマは正確に何ですか?
- 29. gradlew app:dependenciesは正確に何ですか?
- 30. 正確にappStoreReceiptURLとは何ですか?
http://docs.python.org/3/reference/compound_stmts.html#the-for-statement –
ほとんどの言語は、Pythonのようなステートメントを実装していません(これは実際には「foreach」として最もよく記述されています)。 for(init、cond、incr)のC標準の 'は、Pythonのforループのようなものではありません。 –