麻烦老师看看我的代码帮我挑挑毛病
来源:5-5 编程练习
jjboy
2021-07-11 15:19:27
# -*- coding: utf-8 -*-
"""
@author: mo
@contact:
@file: object_hw.py
@time: 7/9/2021 9:18 PM
"""
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def speak(self):
print('Hello! I am %s' % self.name)
def relation(self):
pass
class Student(Person):
# Initialization
def __init__(self, name, gender, score, major):
super(Student, self).__init__(name=name, gender=gender)
self.score = score
self.major = major
self.__stu_num = '2018014002'
def speak(self):
print(f'My student ID is {self.__stu_num}, greetings everyone!')
def identify_stu(self):
if (self._Student__stu_num == '2018014002'):
print('The group of the student has been assigned')
else:
print('Assigning group for the student')
def set_num(self, new_num):
self.__stu_num = new_num
def relation(self):
if issubclass(Student, Person):
print('''My parent class is 'Parent' ''')
else:
print('Searching the super class...')
if __name__ == '__main__':
stu = Student('Mo', 'male', 90, 'Mathematics')
# 调用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()
# check whether the super class is 'Person'
stu_2.relation()
1回答
好帮手慕凡
2021-07-11
同学,你好!
效果中没有输出"Hello! I am 小明/小红",需要使用super()在子类中调用父类的speak方法如下:

祝学习愉快!
相似问题