无法从超类继承

2024-06-28 11:02:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面这样一个简单的代码,类Employee应该从类Person继承。你知道吗

class Person:
  def __init__(self, firstname, lastname, age):
    self.firstname = firstname
    self.lastname = lastname
    self.age = age
  def getname(self):
    return self.firstname, self.lastname
  def getage(self):
    return self.age

class Employee(Person):
  def __init__(self, first, last, empid, age):
    Person.__init__(self, first, last, age):
    self.empid = empid
  def getemp(self):
return self.getname() + ", " + self.empid

employee = Employee("Bart", "Simpson", 1006, 16)
print(employee.getemp())

它给了我这个错误:

File "/tmp/pyadv.py", line 156
    Person.__init__(self, first, last, age):
                                               ^
    SyntaxError: invalid syntax

我检查了Pythondocumentation关于类的内容,但它在子类的__init__()中没有超类初始化。但我发现在其他网站,如here,狗继承宠物。 那么,我错过了什么?你知道吗


Tags: selfagereturninitdefemployeefirstnameclass
2条回答

你没有遗漏任何东西。你需要去掉那条线上的:。你知道吗

:只出现在原始定义(即:def getname(self):)之后,后面总是一个缩进行来声明函数。当你调用一个函数时,你不会这样做。你知道吗

改变

Person.__init__(self, first, last, age):

super().__init__(first, last, age)

相关问题 更多 >