Ich habe für ein Hobbyprojekt einen Textparser geschrieben, der darüber informiert wird, dass eine Textdatei sich geändert hat und dann die Änderungen darin analysiert.
Die grobe Struktur sieht bisher so aus:
Code: Alles auswählen
class Parser(object):
_parse_new_line(self, line):
# parsen der neuen daten und Erstellung des Message objects
return Message
file_modified(self, filepathpath):
# [...]
return _parse_new_data(line)
Die eigentliche Frage ist wie, wie ihr das vom Design her lösen würdet.
Message beinhaltet eh verschiedene Daten über die analysierte Textzeile. Daher würde ich grundsätzlich so vorgehen, dass ich Message am Anfang erstelle und dann in den Funktionen bearbeite.
Code: Alles auswählen
def _parse_new_data(self, lines):
message = Message(init_data)
message = do_something_with_message(message)
message = do_something_other_with_message(message)
Und als dritte Möglichkeit fällt mir noch ein, dass ich die do_something-Dinger in eine Klasse kapsel könnte, die von einer Basis-Klasse erbt und damit einen gewissen Aufbau "erzwingt". Das fühlt sich aber etwas unpythonisch an.
Wie würdet ihr denn vorgehen?