老师帮我看下名字输出怎么一直有问题

来源:2-3 编程练习

张磊_

2019-05-06 00:56:42

class Person(object):

    # 重写实例对象的构造(初始化)方法 

    def __init__(self,name,gender):

    # 自定义实例方法,格式化打印实例属性name的值

        self.name = name

        self.gender = gender

    # 自定义实例方法,占位作用 

    def speak(self):

        print("hello!我是{}".format(self.name))

    def relation(self):

        pass

class Student(Person):

    def __init__(self,name,gender,score,major,num =2018014002):

     # 重写实例对象的构造(初始化)方法,并调用父类构造方法,实现对实例属性的赋值

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

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

        self.score = score

        self.major = major

        self._num =num

     # 自定义实例方法,格式化打印实例属性stu_num的值

    def speak(self):

        super(Student, self).speak()

        print("我的学号为{},很高兴认识大家".format(self._num))

     # 自定义实例方法,判断学号是否为既定值,并根据判断结构 进行分类打印 

    def identify_stu(self):

        if self._num == 2018014002:

            print("我的分组已经完成")

        else:

            print("请稍后,马上为你自动分组")

     # 自定义实例方法,设置实例对象的学号为传入的值

    def set_num(self,new_num):

        self._num=new_num

     # 自定义实例方法,判断该类是否为Person类的子类,并进行分类打印

        def relation(self):

            if issubclass(Student,Person) is True:

                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()

    

hello!我是<__main__.Student object at 0x7fc358aae4a8>

我的学号为2018014002,很高兴认识大家

我的分组已经完成

******************

hello!我是<__main__.Student object at 0x7fc358aae550>

我的学号为2018040625,很高兴认识大家

请稍后,马上为你自动分组


写回答

1回答

慕猿梦

2019-05-06

同学,你好,

问题1:名字输出问题

解决方案:Student类在调用父类时,应使用super(Student, self).__init__(name, gender)即可

http://img.mukewang.com/climg/5ccfb072000160d708670439.jpg

问题2:效果图未输出——我的父类是Person

解决方案:将下图红框2的def与红框1的def对齐。

http://img.mukewang.com/climg/5ccfb1e10001f8fa08100727.jpg

如果我的回答解决了你的疑惑,欢迎采纳!!^_^ 祝学习愉快~~~~~

0

0 学习 · 8160 问题

查看课程