Как получить результаты от вложенной функции-генератора?

У меня есть функция, которая выдает результаты по мере их загрузки. Для целей этого вопроса, скажем, я получаю жало один раз в секунду, но я хочу, чтобы функция удобства обернула мой генератор:

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

...почему это просто не печатает 5 строк, которые я ожидаю? Вместо этого он возвращает функцию генератора:

<generator object GeneratorFunction at 0x020649B8>

Как я могу заставить это выдавать строки, как обычная функция генератора?

42
задан martineau 25 April 2019 в 16:49
поделиться