Ich schreibe etwas ähnlich wie ein Array, aber mit einigen Verbesserungen. Natürlich sollte es iterierbar sein. Aber ich möchte nicht wirklich ein anderes Objekt als Iterator machen, und "für mich in myObject.generator()" erscheint mir zu klobig. Gibt es eine Möglichkeit, eine Generatorfunktion zu erstellen, die für 'for I in myObject' funktionieren würde?Ist es möglich, Objekt-Iteration ohne ein separates Iterator-Objekt durchzuführen?
1
A
Antwort
7
Verwenden Sie einfach eine Generatorfunktion für die __iter__
method:
def __iter__(self):
for value in self._values:
yield value
Dies erzeugt einen neuen Generator Iteratorobjekt jedes Mal iter()
für das Objekt aufgerufen wird (was, was for
tut für Sie, wenn Sie Ihr Objekt verwenden in einer Schleife).
Verwandte Themen
- 1. Ist es möglich, ein Bulk-Update durchzuführen?
- 2. Ist es möglich, eine Inplace Merge ohne temporären Speicher durchzuführen?
- 3. Ist es möglich, T-SQL Fuzzysuche ohne SSIS durchzuführen?
- 4. Ist es möglich, Offscreen-Rendering ohne Surface in Vulkan durchzuführen?
- 5. Ist es möglich, in mstest Tests wie in MbUnit durchzuführen?
- 6. Ist es möglich, mit Nase mehrere Tests gleichzeitig durchzuführen?
- 7. Ist es möglich, eine Soundanalyse für iOS durchzuführen?
- 8. Core-Bluetooth - Ist es möglich, einen synchronen Lesevorgang durchzuführen?
- 9. Ist es möglich, mehrere Klassenimporte mit ES6/Babel durchzuführen?
- 10. Ist es möglich, Batch-POST-API-Aufrufe durchzuführen?
- 11. Ist es möglich Geospatial-Abfragen mit Ecto und MongoDB durchzuführen?
- 12. Ist es möglich, einen Batch-Upload auf Amazon S3 durchzuführen?
- 13. Ist es möglich, Joins über verschiedene Datenbanken mit LINQ durchzuführen?
- 14. Ist es möglich, im Chrome-Onlineshop einen Teil-Rollout durchzuführen?
- 15. Ist es möglich, Gurken-Tests gleichzeitig in Saucelabs durchzuführen?
- 16. Ist es möglich, die Listenbearbeitung mit LINQ durchzuführen?
- 17. Ist es möglich, eine Suche in Excel mit ClosedXML durchzuführen?
- 18. Ist es möglich, statische Initialisierung von Mutexes in Windows durchzuführen?
- 19. Ist es möglich, mit Python API-Lesevorgänge in WordPress durchzuführen?
- 20. Sails.js/Waterline: Ist es möglich, eine "stille" Aktualisierung durchzuführen (ohne das updatedAt-Feld zu beeinflussen)?
- 21. Ist es möglich, in LIKE-Anweisung in SQL eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung durchzuführen?
- 22. Ist es möglich, Live-Video-Streaming auf einer Webseite ohne serverseitige Skripterstellung oder Programmierung durchzuführen?
- 23. Ist es möglich, ein Polymer-Element ohne HTML zu erstellen?
- 24. Ist es möglich, ein Bild ohne Leinwand zu verpixeln?
- 25. Ist es möglich, ein React-Projekt ohne npm-Start auszuführen?
- 26. Ist es möglich, ein TextView ohne Tastatur zu haben?
- 27. Android: Ist es möglich, ein SurfaceTexture ohne SurfaceView zu erstellen?
- 28. pyqtgraph - Ist es möglich, ein ImageView ohne Histogramm zu haben?
- 29. Ist es möglich, ein C# -Projekt ohne MSBuild zu kompilieren?
Schauen Sie sich die '__iter__' magische Methode an [__iter__] (https://docs.python.org/3/library/stdtypes.html#iterator-types) –