有条件地在python中生成一个生成器

时间:2018-01-12 21:29:40

标签: python yield

假设我有这段代码:

def f(data, all_at_once):
    if all_at_once:
        return data
    else:
        yield from data

f([1,2,3], True)
无论f的值如何,

all_at_once始终返回生成器。如何获得有条件地返回生成器的函数?

1 个答案:

答案 0 :(得分:0)

这是一个开始。也许它可以通过lambda

来改进
def gen(data):
    yield from data

def f(data, all_at_once):
    if all_at_once:
        return data
    return gen(data)

f([1,2,3], True)