为什么我的第一行打印不出来呢,并且小明的分组判断也是错的?
来源:2-3 编程练习
癫某人
2019-04-20 11:58:57
class Person(object): # 重写实例对象的构造(初始化)方法 def __init__(self, name, gender): self.name = name self.gender = gender # 自定义实例方法,格式化打印实例属性name的值 def speak(self): print('hello!我是{0}'.format(self.name)) # 自定义实例方法,占位作用 def relation(self): pass class Student(Person): # 重写实例对象的构造(初始化)方法,并调用父类构造方法,实现对实例属性的赋值 def __init__(self, name, gender, score, major, id = 2018014002): super().__init__(name, gender) self.score = score self.major = major self.__id = id # 自定义实例方法,格式化打印实例属性stu_num的值 def speak(self): print('我的学号为{0},很高兴认识大家'.format(self.__id)) # 自定义实例方法,判断学号是否为既定值,并根据判断结构 进行分类打印 def identify_stu(self): if self.score == 2018014002: print('我的分组已经完成') else: print('请稍后,马上为你自动分组') # 自定义实例方法,设置实例对象的学号为传入的值 def set_num(self, new_num): self.__id = 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回答
癫某人
提问者
2019-04-20
问题已经解决,我没有弄明白调用父类的语法,并且在判断时写错了if 判断条件,以下是正确的代码
class Person(object): # 重写实例对象的构造(初始化)方法 def __init__(self, name, gender): self.name = name self.gender = gender # 自定义实例方法,格式化打印实例属性name的值 def speak(self): print('hello!我是{0}'.format(self.name)) # 自定义实例方法,占位作用 def relation(self): pass class Student(Person): # 重写实例对象的构造(初始化)方法,并调用父类构造方法,实现对实例属性的赋值 def __init__(self, name, gender, score, major, id = 2018014002): super().__init__(name, gender) self.score = score self.major = major self.__id = id # 自定义实例方法,格式化打印实例属性stu_num的值 def speak(self): print('我的学号为{0},很高兴认识大家'.format(self.__id)) # 自定义实例方法,判断学号是否为既定值,并根据判断结构 进行分类打印 def identify_stu(self): if self.__id == 2018014002: print('我的分组已经完成') else: print('请稍后,马上为你自动分组') # 自定义实例方法,设置实例对象的学号为传入的值 def set_num(self, new_num): self.__id = new_num # 自定义实例方法,判断该类是否为Person类的子类,并进行分类打印 def relation(self): if issubclass(Student, Person): print('我的父类是Person') else: print('父类正在查询中') if __name__ == '__main__': stu = Student('小明', '男', 90, '数学') # 调用speak方法 打印stu对应的值 super(Student, stu).speak() stu.speak() # 调用实例方法 鉴别学号是否为指定值 stu.identify_stu() # 调用实例方法 鉴别实例对象所属的类的父类是否为Person stu.relation() print("******************") stu_2 = Student('小红', '女', 89, '英语') super(Student, stu_2).speak() # 调用实例方法 设置stu_2的学号为'2018040625' stu_2.set_num(2018040625) # 调用实例方法 打印stu_2对应的值 stu_2.speak() # 调用实例方法 鉴别学号是否为指定值 stu_2.identify_stu()
相似问题
回答 2
回答 1