请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

继承
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)

正在回答 回答被采纳积分+3

2回答

7七月 2020-03-30 00:38:20

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

0 回复 有任何疑惑可以回复我~
  • 提问者 非常不着调 #1
    我少了个括号,当初本来想问super().__init__()和super(Student,self).__init__(name,age)有区别么
    回复 有任何疑惑可以回复我~ 2020-03-30 16:51:43
7七月 2020-03-30 00:37:29

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

0 回复 有任何疑惑可以回复我~
  • 提问者 非常不着调 #1
    更具体的应该是super().__init__(name,age)和super(Student,self).__init__(name,age)有区别么  是不是只是python3和python2的不同用法
    回复 有任何疑惑可以回复我~ 2020-03-30 16:53:35
  • 慕函数5202787 回复 提问者 非常不着调 #2
    Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :
    回复 有任何疑惑可以回复我~ 2020-06-03 01:02:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信