为何使用__init__函数?

为何使用__init__函数?

以下两段代码,都可以实现同一功能。但是为何更加倡导使用__init__这个函数呢?这样做的好处是什么?

代码一:

class Box:

    def setDimension(self, width, height, depth):

        self.width = width

        self.height = height

        self.depth = depth

 

    def getVolume(self):

        return self.width * self.height * self.depth

 

b = Box()

b.setDimension(10, 20, 30)

print(b.getVolume())


代码二:

class Box:

        def __init__(self, width, height, depth):

        self.width = width

        self.height = height

        self.depth = depth

 

    def getVolume(self):

        return self.width * self.height * self.depth

 

b = Box(10, 20, 30)

print(b.getVolume())



正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕念 2021-07-10 10:21:36

同学,你好!使用__init__函数,当创建类实例的时候,__init__函数会默认执行,不用自己手动调用。

(1)在代码二,使用__init__函数的好处是不用自己手动调用__init__函数,当创建类Box的实例b的时候,__init__函数会默认执行,Box括号里面的实参也会默认赋值给__init__函数里面的形参,可参考下图

http://img1.sycdn.imooc.com//climg/60e902bc098d4d8208060621.jpg

(2)而在代码一,当创建好类实例后,需要自己手动调用setDimension这个方法才能进行传递参数的过程。

祝学习愉快!

  • 提问者 一粒沙A #1

    我理解的意思是,使用setDimension也能够实现参数的传递和函数的功能。但是用__init__,不用手工调用,更加简单方便,执行效率更高,对吧?

    2021-07-10 11:00:20
  • 好帮手慕念 回复 提问者 一粒沙A #2

    同学,你好!是的,理解的非常到位。祝学习愉快!

    2021-07-10 11:07:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师