【发布时间】:2013-12-17 13:59:41
【问题描述】:
我有一段代码(一个 xls 解析器)对字段进行一些验证,并返回一个包含 xls 每一行的生成器。
现在,我必须在列表中收集验证错误,并在生成器耗尽时使用它们。
这段代码代表解析器和设计不佳的解决方案。
error_list = []
def gen(limit): #xls parser
for x in range(limit):
if x%2: #fake error contition
error_list.append(x)
else:
yield(x*x) #return
有没有更蟒蛇的方式来做到这一点?我不是全局变量的忠实粉丝。
我希望尽可能保留代码,但如果没有其他方法,我会将函数转换为经典函数
def gen(limit): #xls parser
error_list = []
results = []
for x in range(limit):
if x%2: #fake error contition
error_list.append(x)
else:
results.append(x*x)
return results, error_list
【问题讨论】: