【发布时间】:2014-06-06 09:52:16
【问题描述】:
我有以下结构(可能需要返工,但对我来说这感觉很自然):
def get(baseVar):
if type(baseVar) == GeneratorType:
yield from baseVar
else:
yield baseVar
def multiply(baseVar):
if type(baseVar) == GeneratorType:
for item in baseVar:
yield item*2
else:
yield baseVar*2
funcs = {'get' : get, 'multiply' : multiply}
result = 10
for f in funcs:
result = funcs[f](result)
print(list(result))
另一种方法是(但这根本不是动态的)性能方面的工作就像我想要的那样,其中一个迭代器对象被传递给每个函数,从而从函数中获得更多的动力(理论上):
for result in multiply(get(10)):
...
如何在一行中嵌套多个 yield 函数并传递生成器对象而不用硬编码函数名称getattr?
【问题讨论】:
标签: python python-3.x iterator yield