super这个关键字,在python里面不是可以例如这样去用吗super().eat(),为什么构造函数里面不可以

来源:9-15 子类方法调用父类方法:super关键字

非常不着调

2020-03-29

继承
from basepython.c3 import Person
class Student(Person):
#子类调用父类的构造函数
def __init__(self,name,age,school):
    #Person.__init__(self,name,age)
    #super.__init__()   为什么这样是错误的
    super(Student,self).__init__(name,age)
    self.school = school

def do_homework(self):
    super().eat()
    print("写作业")

def eat(self):
    print("意大利面")

student = Student('shigandang',18,'清华')
student.do_homework()
student.eat()
print(student.age)
print(student.name)
写回答

2回答

7七月

2020-03-30

super().eat()和super.init 这能一样吗?是怎么推断出 既然A就可以B的。

0
1
非常不着调
我少了个括号,当初本来想问super().__init__()和super(Student,self).__init__(name,age)有区别么
2020-03-30
共1条回复

7七月

2020-03-30

这个错误我不知道怎么解释。。。。本身就不能这样啊。

0
2
慕函数5202787
回复
非常不着调
Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :
2020-06-03
共2条回复

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14447 学习 · 4438 问题

查看课程