我有多个生成器函数,这些函数可生成附加到列表中的对象。有很多重复的代码,是否有可能将其最小化(对于Python 3.5+)?
发电机:
def gen1(obj):
if obj == 'something':
yield ValueError()
def gen2(obj):
if obj == 'else':
yield ValueError()
value_errors =[]
工作版本,但重复的代码:
for exc in gen1(obj):
if isinstance(exc, ValueError):
value_errors.append(exc)
for exc in gen2(obj):
if isinstance(exc, ValueError):
value_errors.append(exc)
无法正常工作,但没有重复的代码:
generators = [
gen1(obj),
gen2(obj)
]
for yielded in generators:
if isInstance(yielded, ValueError):
value_errors.append(yielded)
)
这是行不通的,因为它会产生生成器而不是生成器的生成值。有可能解决这个问题吗?
GCT1015
守着一只汪
相关分类