gpt4 book ai didi

Python - 有什么方法可以在子函数中组织一组 yield 以在 main 函数之外产生?

转载 作者:太空狗 更新时间:2023-10-29 17:57:20 25 4
gpt4 key购买 nike

我有一个新手问题要问 python 专家。

我的函数 A 包含很多重复的 yield-actions,如下所示:

yield a
yield b
yield c

看起来像:

def funA():

yield a
yield b
yield c

yield a
yield b
yield c

yield a
yield b
yield c

有什么办法可以将所有重复的 yield 放入函数中并做类似的事情吗?:

def funA():

yield funB()

yield funB()

yield funB()

更新

yield a
yield b
yield c

这只是一个示例,但在实际应用中,其更复杂的 yield 序列在主生成器中重复多次(因此这不是关于组织 yield 的问题),而是关于子生成器。所以我想避免代码重复。

最佳答案

如果您使用的是最新最好的 python (>= 3.3),则有 yield from构造。

yield from funB()

它完全符合您的要求:您可以调用一个函数作为子生成器,并返回它返回给您的所有内容。

如果您使用的是 python 的早期版本,恐怕您将不得不手动执行此操作:

for x in funB(): yield x

如果你有一组动态的子生成器,你可以这样做:

funs = [funA, funB, funC]

for fun in funs:
for item in fun():
yield item

关于Python - 有什么方法可以在子函数中组织一组 yield 以在 main 函数之外产生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20155194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com