【发布时间】:2012-09-20 17:04:30
【问题描述】:
我正在编写一些获取文件名、打开文件并解析出一些数据的代码。我想在课堂上做这个。以下代码有效:
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__ 中调用类函数?还是我想错了?
【问题讨论】:
-
代码示例是否需要五个版本的“stat”?如果只有一个会更容易阅读。