不知道这块错哪里了,一直调试不出来,还有调用父类构造方法,然后赋值,是在是没搞懂

不知道这块错哪里了,一直调试不出来,还有调用父类构造方法,然后赋值,是在是没搞懂

http://img1.sycdn.imooc.com//climg/5f62265c09a313dc09070538.jpg

# 重写实例对象的构造(初始化)方法,并调用父类构造方法,实现对实例属性的赋值
   def __init__(self,name,gender,score,major,_stu_num="2018014002"):
       self.name = name
       self.gender = gender
       self.score = score
       self.major = major
       self._stu_num = _stu_num
       super(Student,self).speak()

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

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

3回答
好帮手慕小猿 2020-09-18 14:32:08

同学你好,
1、同学说的调用父类,可以写也可以不写,默认是调用父类的,但是我们通常都是写的,如果不写调用父类super(student,self).__init__(name,gender),就需要写self.name=name ,self.gender=gender,即下框需要二选一
http://img1.sycdn.imooc.com//climg/5f64538d0976bbc908590274.jpg
2、因同学提供的代码不全,以下是完整的代码,运行结果是正确的。同学可以检查下哪里与老师的不同,进而修改自己的代码
http://img1.sycdn.imooc.com//climg/5f64540e098cceee08600790.jpg
http://img1.sycdn.imooc.com//climg/5f6454260902fdc908380615.jpg
祝学习愉快~

好帮手慕雪 2020-09-18 10:13:19

http://img1.sycdn.imooc.com//climg/5f64178209f6f32c05900415.jpg

父类有的方法直接调用父类方法,不够的子类再自己补充。这样更合理

  • 提问者 慕码人7525953 #1
    super(Student, self).speak() 为什么要加这段进去?本来不就是调用了父类吗? 打印出来是这样的: hello!我是小明 hello!我是小明 我的学号为2018014002,很高兴认识大家 我的分组已经完成 我的父类是Person ****************** hello!我是小红 hello!我是小红 我的学号为2018040625,很高兴认识大家 请稍后,马上为你自动分组
    2020-09-18 10:46:16
好帮手慕雪 2020-09-17 10:12:26

同学这里写错了,

http://img1.sycdn.imooc.com//climg/5f62c5cd093d9ea106770136.jpg

条件判断,直接应该改为if self.__stu_num == '2018014002'就可以了。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~~~~  


  • 提问者 慕码人7525953 #1
    重写实例对象的构造(初始化)方法,并调用父类构造方法,实现对实例属性的赋值 这段代码有问题吗?
    2020-09-17 21:30:37
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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