フィールド上で検証を行い、xlsのすべての行を含むジェネレータを生成するコード(xlsパーサー)があります。Yieldを使用してエラーのリストを返します
ここで、検証エラーをリストで収集し、ジェネレータが使い果たされたときに使用する必要があります。
これはパーサと貧弱な設計ソリューションを表すコードです。
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
これを行うにはもっとpythonicな方法がありますか?私はグローバル変数の大ファンではない。
それは可能な限りですが、他に方法がない場合、私はあなたが例外使用することができます古典的な
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
@Eric:インスタンスは、このような余分な状態に固執するあなたに何かを与えるよう
私は、代わりにクラスを使用したいためのおかげで補正;私たちの編集が衝突した、私は手動で修正を組み込んだ。 –
タイプミスがあります。 'XMLParser'ではなく' XLSParser'だったはずです。 – thefourtheye
それは魅力のように動作します、ありがとう! –