我有多個生成器函數,這些函數可生成附加到列表中的對象。有很多重復的代碼,是否有可能將其最小化(對于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
提交
取消