Wie Ergebnisse aus einer geschachtelten generator-Funktion?
Ich habe eine Funktion, die führt zu Ergebnissen, wie Sie es downloaden. Für die Zwecke dieser Frage, können sagen, ich Ertrag ein Stachel einmal jeder zweite, aber ich will eine Komfort-Funktion, einzuwickeln meinen generator:
import time
def GeneratorFunction(max_val):
for i in range(0,5):
time.sleep(1)
yield "String %d"%i
def SmallGenerator():
yield GeneratorFunction(3)
for s in SmallGenerator():
print s
...warum das nicht einfach drucken Sie die 5 strings, die ich erwarte? Stattdessen scheint es, die Rückkehr der generator functio:
<generator object GeneratorFunction at 0x020649B8>
Wie kann ich diese Ausbeute die Saiten wie ein normaler generator-Funktion würde?
- FYI, in Python 3.3,
yield from GeneratorFunction(3)
arbeiten.. - Danke. Noch nicht ganz die Umstellung auf 3+ aber...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Kann nicht glauben ich verpasste das; Die Antwort ist zu einfach die generator-Funktion mit passenden Argumenten angewendet:
Müssen Sie möglicherweise verwenden Sie die neue
Ertrag
, seit Python 3.3, bekannt als "Delegierte generator".Wenn ich die Frage richtig verstanden habe, kam ich auf das gleiche Problem, und fand die Antwort an anderer Stelle.
Wollte ich etwas wie das hier tun:
Ich jetzt diese stattdessen zu verwenden:
Bekam ich die Antwort von dieser Seite: Python 3: Mit "Ertrag" in Stromerzeuger - Teil 1 (simeonvisser.com).
Kam hierher auf der Suche nach einer anderen form von "nested" - Rendite und fand schließlich die versteckte Antwort. Vielleicht nicht die beste aber es funktioniert.
Ich wollte Ausbeute durch einen registry-Baum und hier ist die Lösung.
Hier ist ein weiteres kleines Beispiel für die Erzeugung des Einmaleins von 1 bis 10:
Ich kam auf der Suche nach einem anderen Gebrauch von verschachtelten Erträge..
Ausgabe: