Llamando a una función de clase dentro de __init__
Estoy escribiendo un código que toma un nombre de archivo, abre el archivo y analiza algunos datos. Me gustaría hacer esto en una clase. El siguiente código funciona:
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()
Pero me implica poner toda la maquinaria de análisis en el ámbito de la__init__
Función para mi clase. Eso se ve bien ahora para este código simplificado, pero la funciónparse_file
También tiene bastantes niveles de sangría. Prefiero definir la funciónparse_file()
como una función de clase como abajo:
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
Por supuesto, este código no funciona porque la funciónparse_file()
no está dentro del alcance de la__init__
función. ¿Hay una manera de llamar a una función de clase desde dentro__init__
de esa clase? ¿O estoy pensando en esto de manera equivocada?