关于调用父类方法的语法

关于调用父类方法的语法

调用Point父类方法的两种写法:


Point.__init__(self, x, y)

super().__init__(x, y)


为什么前者参数要加self,后者参数没有self呢?

这个地方理解不了


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

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

1回答
好帮手慕念 2021-08-03 10:13:22

同学,你好!两种使用的语法是不一样的

(1)前者使用类名.方法名(),第一个参数是self

(2)后者使用super().方法名(),其实还有另一种写法,即super(当前类,self).方法名(),如下图

http://img1.sycdn.imooc.com//climg/6108a47b0985355905440186.jpg

祝学习愉快!

  • https://img1.sycdn.imooc.com//climg/61723b4909b9ff9404130100.jpg请问同样是调用父类两个supert和两人__init__,是不是会造成混乱,所以用两种方法,不然会报错,假如继承3个要如何调用

    2021-10-22 12:22:11
  • 同学,你好!

    1、会造成报错,同时继承多个父类时,super( )方法只能调用左边第一个父类(如:Point类)的__init__方法,而Point类中的__init__方法没有width,height,会报错没有width属性,如下图:

    https://img1.sycdn.imooc.com//climg/617248cb09a5ac8708910224.jpg

    https://img1.sycdn.imooc.com//climg/6172485a09f241d614150515.jpg

    2、在继承多个父类时,可以使用:父类名.方法名( ),调用不同父类的方法,如下图:

    https://img1.sycdn.imooc.com//climg/6172498a09ded40d10670507.jpg

    祝学习愉快~


    2021-10-22 13:19:20
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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