Gibt es eine objektive Definition? Ist es als ein Fragment von Pythons Quellcode implementiert? Wenn ja, könnte jemand die genauen Codezeilen erzeugen? Haben Sie alle Sprachen mit, sagen wir, eigenen 'Iterator-Protokollen?Was genau ist das Iteratorprotokoll von Python?
Antwort
es sich befindet here in der Dokumentation:
Eine Methode muss definiert werden, für Containerobjekte Iteration unterstützen:
container.__iter__()
Return ein Iterator-Objekt. Das Objekt muss das unten beschriebene Iteratorprotokoll unterstützen. Wenn ein Container verschiedene Arten von Iterationen unterstützt, können zusätzliche Methoden bereitgestellt werden, um Iteratoren für diese Iterationstypen spezifisch anzufordern. (Ein Beispiel für ein Objekt, das mehrere Formen der Iteration unterstützt, wäre eine Baumstruktur, die sowohl die erste Breite als auch die erste Tiefe unterstützt.) Diese Methode entspricht dem Slot tp_iter
der Typstruktur für Python-Objekte in der Python/C-API.
Der Iterator-Objekte selbst erforderlich sind, um die folgenden zwei Verfahren zu unterstützen, die zusammen das Iterator-Protokoll bilden:
iterator.__iter__()
Return der Iterator-Objekt selbst. Dies ist erforderlich, damit sowohl Container als auch Iteratoren mit den For- und In-Anweisungen verwendet werden können. Diese Methode entspricht dem Slot tp_iter
der Typstruktur für Python-Objekte in der Python/C-API.
iterator.next()
Return das nächste Element aus dem Container. Wenn keine weiteren Elemente vorhanden sind, heben Sie die StopIteration-Ausnahme an. Diese Methode entspricht dem Slot tp_iternext
der Typstruktur für Python-Objekte in der Python/C-API.
- 1. Was genau ist Werkzeug?
- 2. Python ist super(), was genau passiert?
- 3. Was genau ist PLINQ?
- 4. Was genau ist OData?
- 5. Was genau ist Java?
- 6. Was genau ist libpng?
- 7. Was genau der Punkt von memoryview in Python ist
- 8. Was genau ist DEFAULT_COMPRESSION?
- 9. Was genau ist JSON?
- 10. Was genau ist Papagei?
- 11. Was genau ist Gemfire?
- 12. Was genau ist Augmentationspfad?
- 13. Was genau ist ContextStaticAttribute?
- 14. Was genau ist das Risiko bei der Verwendung von TerminateProcess?
- 15. Was genau ist Container.DataItem?
- 16. Was genau ist sun.jnu.encoding?
- 17. Was genau ist Athen?
- 18. Was genau ist Rake?
- 19. Maximale Rekursion ist nicht genau das, was sys.getrecursionlimit() beansprucht. Woher?
- 20. Was genau ist ein Stream?
- 21. Was genau ist ".alert span"?
- 22. Was genau ist eine "Konsole"?
- 23. Was genau ist Appdomain recycling
- 24. Was genau ist ein Speicherseitenfehler?
- 25. Was genau ist dieser Fehler?
- 26. Was genau ist String.LegacyMode-Eigenschaft?
- 27. Was genau ist ein ViewModel?
- 28. Was genau ist ein Fremdschlüssel?
- 29. Was genau ist ein "Schlüsselbehälter"?
- 30. Was genau ist "ID == EditorInfo.IME_NULL"?
http://docs.python.org/3/reference/compound_stmts.html#the-for-statement –
Die meisten Sprachen implementieren keine Python-ähnlichen Anweisungen (die am besten als "foreach" beschrieben werden). Der C-Standard 'for (init, cond, incr)' ist nichts wie Pythons for-Schleife. –