我正在编写一个程序,它需要读取一个文件名,打开该文件,并解析一些数据。我想用类的形式来实现。以下代码可以实现这个功能:
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__
中调用一个类函数?或者我想错了吗?