如何从嵌套生成器函数产生结果?

乔恩·凯奇(Jon Cage):

我有一个函数,可以在下载结果时产生结果。出于这个问题的目的,可以说我每秒产生一次刺痛,但我希望使用便利函数来包装我的发生器:

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>

我怎样才能像普通的生成器函数那样产生字符串呢?

乔恩·凯奇(Jon Cage):

不能相信我错过了;答案是简单地返回生成器函数并应用适当的参数:

import time

def GeneratorFunction(max_val):
    for i in range(0,max_val):
        time.sleep(1)
        yield "String %d"%i

def SmallGenerator():
    return GeneratorFunction(3) # <-- note the use of return instead of yield

for s in SmallGenerator():
    print s

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从嵌套生成器函数产生结果?

如何迭代生成器函数的结果

产生生成器和聚合结果的Python函数

如何嵌套生成器

如何映射或嵌套Python 2.7函数生成器?

一次产生一个结果的生成器函数

Javascript 生成器不会产生新的结果

如何从生成器函数调用的异步回调中产生收益?

抛出错误后如何保持生成器函数产生值?

python生成器函数不产生输出

生成器函数无法产生适当的值

始终处理但不总是产生的生成器函数

如何声明异步生成器函数

有什么方法可以创建异步流生成器,从而产生重复调用函数的结果?

如何在Laravel 8的查询生成器中使用嵌套函数substr(),cast()和Max()?

如何使用生成器训练TensorFlow网络以产生输入?

如何从回调到调用生成器的内部产生值

如何使用python生成器递归产生对象?

如何将额外的结果从python生成器发送到使用者函数?

嵌套在生成器内部的函数的JavaScript产量

在变量中设置生成器函数的结果

开玩笑:测试生成器函数会产生另一个生成器函数

如何使用嵌套生成器编写jqwik生成器方法

重构此生成器以产生嵌套列表的排序嵌套元组instad

如何构建“嵌套for循环生成器”?

如何在python中创建嵌套的生成器结构?

如何使用python中的生成器创建嵌套的for循环?

您如何同时映射生成器结果?

如何检查随机字符生成器的重复结果