python类中函数调用_python - 在__init__中调用类函数

这篇博客讨论了在Python类中如何正确地从`__init__`方法调用类函数。作者遇到了一个问题,即在`__init__`中直接调用`parse_file()`导致错误,因为该函数不在`__init__`的作用域内。解决方案是通过在`__init__`中使用`self.parse_file()`来调用类函数,确保函数能够访问实例的属性。
摘要由CSDN通过智能技术生成

我正在编写一些带有文件名的代码,打开文件并解析出一些数据。 我想在课堂上这样做。 以下代码有效:

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()

但它涉及我将所有解析机制放在我班级的parse_file()函数的范围内。 对于这个简化的代码,现在看起来很好,但功能__init__也有很多级别的缩进。 我更喜欢将函数__init__定义为类函数,如下所示:

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__内调用类函数? 或者我是否以错误的方式思考这个问题?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值