步骤三· 2-3编程练习

来源:2-3 编程练习

起风了__

2020-02-06 21:58:49

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

    def __init__(self, name, gender, score=0, majore=''):
        self.name = name
        self.gender = gender
    # 自定义实例方法,格式化打印实例属性name的值

    def speak(self):
        print('hello!我是{}'.format(self.name))
# 自定义实例方法,占位作用

    def relation(self):
        pass


class Student(Person):
    num = 0

    def __init__(self, name, gender, score, major):
        super(Person, self)
        Person.__init__(self, name, gender)
        self.score = score
        self.major = major

    def speak(self):
        super(Person, self)
        Person.speak(self)
        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

    def relation(self):
        if issubclass(Student, Person):
            print('我的父类是Person')
        else:
            print('父类正在查询中......')


if __name__ == '__main__':
    stu = Student('小明', '男', 90, '数学')
    # 调用speak方法 打印stu对应的值
    stu.set_num('2018014002')
    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回答

为学习而奋斗

2020-02-06

同学,您好:

同学的代码运行起来是正确的,符合题意要求~

当然同学也可以参考我的代码~

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
       self.stu_nu = 2018014002
# 自定义实例方法,格式化打印实例属性stu_num的值
   def speak(self):
       super(Student,self).speak()
       print("我的学号为:{},很高兴认识大家".format(self.stu_nu))

# 自定义实例方法,判断学号是否为既定值,并根据判断结构 进行分类打印
   def identify_stu(self):
       if self.stu_nu == 2018014002:
           print("我的分组已经完成")
       else:
           print("请稍后,马上为你自动分组")
# 自定义实例方法,设置实例对象的学号为传入的值
   def set_num(self,new_num):
       self.stu_nu = 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

0 学习 · 8160 问题

查看课程