我有多个生成器函数,这些函数可生成附加到列表中的对象。有很多重复的代码,是否有可能将其最小化(对于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))这是行不通的,因为它会产生生成器而不是生成器的生成值。有可能解决这个问题吗?
添加回答
举报
0/150
提交
取消