我写一些代码,需要一个文件名,打开文件,并解析出一些数据。我想在一个类中这样做。以下代码工作原理:
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__内调用类函数?还是我在想这个错误的方式?