Вызов функции класса внутри __init__
Я пишу некоторый код, который принимает имя файла, открывает файл и анализирует некоторые данные. Я хотел бы сделать это в классе. Следующий код работает:
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()
Но это вовлекает меня, помещая все механизмы разбора в сферу действия__init__
функция для моего класса. Это выглядит хорошо для этого упрощенного кода, но функцияparse_file
имеет довольно много уровней отступа. Я предпочел бы определить функциюparse_file()
как функция класса, как показано ниже:
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
Конечно, этот код не работает, потому что функцияparse_file()
не входит в сферу действия__init__
функция. Есть ли способ вызвать функцию класса изнутри__init__
этого класса? Или я думаю об этом не так?