Я пишу якийсь код, який приймає ім'я файлу, відкриває файл та аналізує деякі дані. Я хотів би це зробити на уроці. Наступний код працює:
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__
цього класу? Або я думаю про це неправильно?