第三题,不太明白,能讲讲么

第三题,不太明白,能讲讲么

3、自定义Student类,继承自Person类,

并重写其构造(初始化)方法__init__( ),name、gender参数通过调用父类的构造函数进行赋值,# 这里

score、major及__stu_num通过子类重写的 __init__( )进行赋值, # 这里

设置__stu_num的初始值为'2018014002'。

class Student(Person):

    ​def __init__(self,name,gender,score,major):

    ​    ​super(Student, self).__init__(name, gender)

    ​    ​self.score = score

    ​    ​self.major = major

    ​    ​self.__stu_num = 'xxxx'

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

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

1回答
好帮手慕小轩 2020-12-15 18:44:28

同学,你好!定义一个学生类Student,并继承Person类,重写构造方法,要在Student构造方法里面写四个参数,前两个参数是父类构造方法里面的name和gender,后面的两个参数是Student自己的参数,使用super方法调用父类Person构造方法里面的name和gender参数,子类中只对新增加的score、major属性绑定到实例上,并把'2018014002'赋值给__stu_num,参考代码:
http://img1.sycdn.imooc.com//climg/5fd8933f0940fce408280360.jpg

  • 提问者 0文弱书生0 #1
    父类和子类参数没有个数限制吧,按顺序父类放前面,子类放后面??
    2020-12-15 19:47:44
  • 好帮手慕小轩 回复 提问者 0文弱书生0 #2

    同学,你好!父类和子类参数没有个数限制,顺序不固定,只要创建的实例对象里面参数与构造方法里面的参数位置对应即可,参考代码:http://img1.sycdn.imooc.com//climg/5fd9667409602e4c09540807.jpg

    2020-12-16 10:12:48
  • 那请问这里为什么要调用父类的构造函数呢,子类不是可以直接调用父类的属性吗,应该可以直接调用父类里的 name和sender 啊

    2020-12-20 09:13:19
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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