关于relation方法

关于relation方法

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, stu_num='2018014002'):

        super().__init__(name, gender)

        self.score = score

        self.major = major

        self.num = stu_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):

            print('我的父类是Person')

        else:

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

老师,这个子类中的relation和父类中的占位relation有什么关系吗?为什么父类需要有个占位的relation方法不写的话会怎么样?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学,你好。

  1. 子类中的relation在代码中重写了父类中relation方法,因此子类调用relation方法是调用自己重写后的relation方法,如果要调用父类的relation方法,需要用super().relation();

  2. 如果relation方法在本案例中不写,程序也不会出现问题,relation方法是Person类具备的方法,所以建议写上。

如果解决了你的疑惑,请采纳,祝学习愉快~ 


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师