Ich habe ein Stück Code (ein xls-Parser), der einige Validierung für die Felder und gibt mit yield einen Generator zurück, der jede Zeile der xls enthält.Verwenden von Ertrag und Rückgabe einer Liste von Fehler
Jetzt muss ich Validierungsfehler in einer Liste sammeln und sie verwenden, wenn der Generator erschöpft ist.
Dies ist ein Stück Code, der den Parser und eine schlecht entworfene Lösung darstellt.
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
Gibt es einen mehr pythonischen Weg, dies zu tun? Ich bin kein großer Fan von globalen Variablen.
Ich würde gerne den Code zu halten, wie es so viel wie möglich ist, aber wenn es keine andere Möglichkeit gibt, werde ich die Funktion eines klassischen
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: Vielen Dank für die Korrektur; unsere Bearbeitungen kollidierten, ich nahm den Fix manuell auf. –
Es gibt einen Tippfehler. Es hätte "XLSParser" statt "XMLParser" sein sollen. – thefourtheye
es funktioniert wie ein Charme, danke! –