请老师帮忙查看代码是否存在问题,或需要修改的地方,谢谢

请老师帮忙查看代码是否存在问题,或需要修改的地方,谢谢

# coding:utf8
class Person(object):

# 重写实例对象的构造(初始化)方法
   def __init__(self, name, gender):
self.name = name
self.gender = gender

# 自定义实例方法,格式化打印实例属性name的值
   def speak(self):
print(f'hello,我是{self.name}')

# 自定义实例方法,占位作用
   def relation(self):
pass


class Student(Person):

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

# 自定义实例方法,格式化打印实例属性stu_num的值
   def speak(self):
super().speak()
print(self.__stu_num)

# 自定义实例方法,判断学号是否为既定值,并根据判断结构 进行分类打印
   def identify_stu(self):
if self.__stu_num == '2018014002':
print('我的分组已完成')
else:
print('请稍后,马上为你自动分组')

# 自定义实例方法,设置实例对象的学号为传入的值
   def set_num(self, new_num):
self.__stu_num = new_num

# 自定义实例方法,判断该类是否为Person类的子类,并进行分类打印
   def relation(self):
if issubclass(Student, Person):
print('我的父类是Person')
else:
print('父类正在查询中')


if __name__ == '__main__':
stu = Student('小明', '', 90, '数学')
# 调用speak方法 打印stu对应的值
   stu.speak()
# 调用实例方法 鉴别学号是否为指定值
   stu.identify_stu()
# 调用实例方法 鉴别实例对象所属的类的父类是否为Person
   stu.relation()
print("******************")
stu_2 = Student('小红', '', 89, '英语')
# 调用实例方法 设置stu_2的学号为'2018040625'
   stu_2.set_num('2018040625')
# 调用实例方法 打印stu_2对应的值
   stu_2.speak()
# 调用实例方法 鉴别学号是否为指定值
   stu_2.identify_stu()

问题描述:

请老师帮忙查看代码是否存在问题,或需要修改的地方,谢谢



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

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

1回答
好帮手慕燕燕 2021-07-03 13:54:14

同学,你好!程序实现满足习题要求,逻辑清晰,并且合理的添加了注释,非常好,一点小细节需要注意,同学直接打印了学号,要按习题要求进行打印

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

祝:学习愉快!

  • 提问者 记忆LL #1

    class Student(Person):

    # 重写实例对象的构造(初始化)方法,并调用父类构造方法,实现对实例属性的赋值
       def __init__(self, name, gender, score, major):
    self.score = score
    self.major = major
    self.__stu_num = '2018014002'
           super().__init__(name, gender)
    还有点不明白的是,我继承了父类,应该我下面调用子类实例的时候就理应传入父类的两个参数,为什么子类这边定义需要传入4个参数呢?望老师帮忙解答下,谢谢


    2021-07-03 16:56:00
  • 好帮手慕燕燕 回复 提问者 记忆LL #2

    同学,你好!子类继承父类,可以直接使用父类的代码,但往往父类并不能满足子类的要求,此时子类要添加一些内容来实现自己的需求,子类需要的参数往往会多于父类。

    可以结合生活中例子来理解这个问题,比如小慕继承了一套房屋(House,相当于父类),进入House只需要1把钥匙,小慕对房屋进行了改造,增加了1道门(imoocHouse,相当于子类),进入imoocHouse就需要2把钥匙,定义子类时就需要2个参数,其中1个传递给父类。

    祝学习愉快!

    2021-07-03 17:53:31
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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