老师,麻烦帮忙看一下我的代码如下,打印与结果不一样,谢谢

来源:2-3 编程练习

慕婉清5162727

2019-07-09 22:03:05

class Person(object):

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

    def __init__(self,name,gender):

        self.name=name

        self.gender=gender


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

    def speak(self):

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


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

    def relation(self):

        pass

       

class Student(Person):


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

    def __init__(self,name,gender,score,major):

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

        self.score = score

        self.major = major


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

    def speak(self,stu_num):

        

        print('我的学号为{0},很高兴认识大家'.format(stu_num))


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

    def identify_stu(self,stu_num):

        if stu_num=='2018014002':

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

        else:

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

        


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

    def set_nun(self,new_num):

        stu_nun = new_num

        return stu_num


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

    def relation(self):

        t=issubclass(Student,Person)

        if t==True:

            print('我的父类是Person')

        else:

            print('父类正在查询中······')


if __name__ == '__main__':

    stu = Student('小明', '男', 90, '数学')

    # 调用speak方法 打印stu对应的值

    stu_num='2018014002'

    stu.speak(stu_num)

    

    # 调用实例方法 鉴别学号是否为指定值

    stu.identify_stu(stu_num)

    

    # 调用实例方法 鉴别实例对象所属的类的父类是否为Person

    stu.relation()

    

    print("******************")

    stu_2 = Student('小红', '女', 89, '英语')

    # 调用实例方法 设置stu_2的学号为'2018040625'

    stu_2.set_nun('2018040625')

    # 调用实例方法 打印stu_2对应的值

    stu_2.speak(stu_num)

    

    # 调用实例方法 鉴别学号是否为指定值

    stu_2.identify_stu(stu_num)


写回答

1回答

时间,

2019-07-10

同学,你好。

1、Stuent类中的speak需要调用父类中的speak才可以打印出父类中的内容。另因父类speak没有参数,因此在调用speak()方法时也不需要传参,可以设置参数stu_num的默认值。

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

2、同学在调用identify_stu方法时,传入的为stu_num值,在前面语句中该变量值为'2018014002',因此stu_2的学号也为'2018014002'。可以直接传入'2018040625'。将参数new_num的值赋值给self.stu_num,修改该变量的值。

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

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

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

0

0 学习 · 8160 问题

查看课程