关于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方法不写的话会怎么样?
正在回答
同学,你好。
子类中的relation在代码中重写了父类中relation方法,因此子类调用relation方法是调用自己重写后的relation方法,如果要调用父类的relation方法,需要用super().relation();
如果relation方法在本案例中不写,程序也不会出现问题,relation方法是Person类具备的方法,所以建议写上。
如果解决了你的疑惑,请采纳,祝学习愉快~
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星