老师,帮忙看看这样做对不对,怎么样做的更好

来源:2-3 编程练习

weixin_慕码人71622

2019-10-08 00:21:28

class Person(object):
    """"""
    tag = '父类'

# 重写实例对象的构造(初始化)方法
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender
# 自定义实例方法,格式化打印实例属性name的值

    def speek(self):
        """ 打印信息 """
        print("hello!我是{0}".format(self.name))

# 自定义实例方法,占位作用
    """ 占位 """
    def relation(self):
        pass


class Student(Person):
    """
    学生的信息
    """

    tag = "学生的信息"

# 重写实例对象的构造(初始化)方法,并调用父类构造方法,实现对实例属性的赋值
    def __init__(self, name, gender, score, major, stu="2018014002"):
        super().__init__(name, gender)
        self.name = name
        self.gender =gender
        self.score = score
        self.major = major
        self.__stu = stu

# 自定义实例方法,格式化打印实例属性stu_num的值
    def speek(self):
        """
        打印学生的信息
        :return:
        """
        super().speek()
        print("我的学号为:{0},很高兴认识大家".format(self.__stu))

# 自定义实例方法,判断学号是否为既定值,并根据判断结构 进行分类打印
    def identify_stu(self):
        """
        判断学号是否为既定值
        :return:
        """
        if self.__stu == str(2018014002):
            print("我的分组已经完成")
        else:
            print("请稍后,马上为你自动分组")

# 自定义实例方法,设置实例对象的学号为传入的值
    def set_num(self, new_num):
        """
        设置学生的学号
        :param new_num: 学号
        :return:
        """
        self.__stu = new_num

# 自定义实例方法,判断该类是否为Person类的子类,并进行分类打印
    def relation(self):
        """
        判断该类是否为Person类的子类
        :return:
        """
        if issubclass(Student, Person):
            print("我的父类是Person")
        else:
            print("父类正在查询中")


if __name__ == '__main__':
    stu = Student('小明', '男', 90, '数学')
    # 调用speak方法 打印stu对应的值
    stu.speek()
    # 调用实例方法 鉴别学号是否为指定值
    stu.identify_stu()
    # 调用实例方法 鉴别实例对象所属的类的父类是否为Person
    stu.relation()
    print("******************")
    stu_2 = Student('小红', '女', 89, '英语')
    # 调用实例方法 设置stu_2的学号为'2018040625'
    stu_2.set_num(2018040625)
    # 调用实例方法 打印stu_2对应的值
    stu_2.speek()
    # 调用实例方法 鉴别学号是否为指定值
    stu.identify_stu()


写回答

1回答

时间,

2019-10-08

同学,你好。同学的程序是可以的,完成了相应功能,但还有细节地方需要注意。

1、当继承的父类中有name和gender属性时,子类中就不需要再写了

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

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

0

0 学习 · 8160 问题

查看课程