为了账号安全,请及时绑定邮箱和手机立即绑定

定义Person类时能否不继承object类

在章节5-2的文件中,定义Person类时如果不继承object,无法运行。

但 在章节4-2的文件中,定义Person类时如果不继承object,可以运行!!可以运行!!

正在回答

4 回答

python3中完全移除旧式类,所有类都是新式类,但仍可显式继承object类。


0 回复 有任何疑惑可以回复我~

貌似python3中不写object也可以了

class Person():
    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

t = Teacher('Alice', 'Female', 'English')
print(t.name)
print(t.course)


0 回复 有任何疑惑可以回复我~

python中super只能应用于新类,而不能应用于经典类

所谓新类就是所有类都必须要有继承的类,如果什么都不想继承,就继承到object类。所谓经典类就是什么都不用继承的类

初始化父类有两种方式:

第一种:super(Teacher,self).__init__(name,gender)

第二种:Person.__init__(self,name,gender)



0 回复 有任何疑惑可以回复我~

是因为5-2中引用了super()这个继承函数,这个函数要求类要属于object类,如果不用super()函数,而直接用Person.__init__(self,name,gender)代替就可以不用继承object。你可以该来试试!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255533    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

定义Person类时能否不继承object类

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号