我正在编写一些代码,它获取文件名、打开文件并解析出一些数据。我想在课堂上做这个。以下代码有效:
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__
那个班级的?或者我以错误的方式思考这个问题?
以这种方式调用该函数:
self.parse_file()
您还需要定义您的parse_file()
像这样的函数:
def parse_file(self):
The parse_file
方法必须在调用时绑定到对象(因为它不是静态方法)。这是通过在对象实例上调用函数来完成的,在您的情况下,实例是self
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)