章节
问答
课签
笔记
评论
占位
占位

Python继承类

对人类的抽象可以定义为Person类,而学生、老师等,也都是人类,所以,在Python当中,如果定义学生Student的类,可以继承Person类。

class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender

接着定义Student类,在定义Student类的时候,由于继承了Person类,所以Student类自动拥有name、gender属性,因此,在定义Student类的时候,只需要把额外的属性加上即可。

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

student = Student('Alice', 'girl', 100)
print(student.name) # ==> Alice
print(student.gender) # ==> girl
print(student.score) # ==> 100

在定义继承类的时候,有几点是需要注意的:

  1. class Student()定义的时候,需要在括号内写明继承的类Person
  2. 在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性

任务

请参考Student类,编写Teacher类,老师拥有任教某个科目的属性。

?不会了怎么办

参考答案:

class Person(object):
    def __init__(self, name, gender):
        self.name = name
        self.gender = gender

class Teacher(Person):
    def __init__(self, name, gender, course):
        super(Teacher,self).__init__(name,gender)
        self.course = course

teacher = Teacher('Alice', 'Female', 'English')
print(teacher.name)
print(teacher.gender)
print(teacher.course)
||
1
2
# Enter a code
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / tinghai
执行报错:Traceback (most recent call last):  File "E:\python\example\lizi.py", line 283, in <module>    student = Student('Alice',100)              ^^^^^^^^^^^^^^^^^^^^  File "E:\python\example\lizi.py", line 280, in __init__    super(Student, self).__i...

最赞回答 / weixin_慕数据4499655
功能上是等同了,但是Teather类并没有继承Person,就跟Person类没有关系了,就相当于原来是父子干一件事,后面是两个同事干一件事。

最赞回答 / 奶香馒头
我明白了,super(Teacher,self).__init__(name,gender)这是python2.x中的语法,class括号里要带object,python3.x语法里class可以不带

最赞回答 / 小白兔cai
定义函数 def __init__(self,   ,  ):函数是写成了   def __int__(self,   ,   ):改写为   def __init__(self,   ,   ):
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言