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...
InformationsquelleAutor Jon Cage | 2012-06-25
Schreibe einen Kommentar