Вызов функции класса внутри __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__ этого класса? Или я думаю об этом не так?

Ответы на вопрос(6)

Ваш ответ на вопрос