Ich schreibe einen Code, der einen Dateinamen annimmt, die Datei öffnet und einige Daten analysiert. Ich würde das gerne in einer Klasse machen. Der folgende Code funktioniert:
class MyClass():
def __init__(self, filename):
self.filename = filename
self.stat1 = None
self.stat2 = None
self.stat3 = None
self.stat4 = None
self.stat5 = None
def parse_file():
#do some parsing
self.stat1 = result_from_parse1
self.stat2 = result_from_parse2
self.stat3 = result_from_parse3
self.stat4 = result_from_parse4
self.stat5 = result_from_parse5
parse_file()
Aber ich muss die gesamte Parsing-Maschinerie in den __init__Funktionsumfang meiner Klasse aufnehmen. Für diesen vereinfachten Code sieht das jetzt gut aus, aber die Funktion parse_fileweist auch einige Einrückungsstufen auf. Ich würde es vorziehen, die Funktion parse_file()wie folgt als Klassenfunktion zu definieren :
class MyClass():
def __init__(self, filename):
self.filename = filename
self.stat1 = None
self.stat2 = None
self.stat3 = None
self.stat4 = None
self.stat5 = None
parse_file()
def parse_file():
#do some parsing
self.stat1 = result_from_parse1
self.stat2 = result_from_parse2
self.stat3 = result_from_parse3
self.stat4 = result_from_parse4
self.stat5 = result_from_parse5
Natürlich funktioniert dieser Code nicht, da die Funktion parse_file()nicht im __init__Funktionsumfang liegt. Gibt es eine Möglichkeit, eine Klassenfunktion innerhalb __init__dieser Klasse aufzurufen ? Oder denke ich falsch darüber nach?