这是我的作业:


  问题的第一部分是定义子类Worker,该子类从Employee继承,并包括一个属性,该属性引用另一位作为工人经理的雇员。您应该定义一个方法get_manager返回工作人员的经理。
  
  例:
  worker = Worker("Fred", 52000, myboss)
  
  问题的第二部分是定义从Executive继承的子类Employee,该子类包含引用年度奖金的属性。
  
  您应该重写工资方法,以根据高管的薪水和奖金来计算高管的薪水。您应在Employee类的工资方法定义中使用Executive工资方法。
  
  例:
  executive = Executive("Kerry", 520000, 1040000)


我提交了以下代码,但被告知“您的高管薪水不正确”。我看不到错误是什么。我该怎么做呢?

class Employee(object):

    def __init__(self, name, salary):
        self._name = name
        self._salary = salary

    def my_name(self):
        return self._name

    def wage(self):
        return self._salary/26   # fortnight pay

class Worker(Employee):
    def __init__(self, name, salary, manager):
        Employee.__init__(self, name, salary)
        self._manager = manager

    def getManager(self):
        return self._manager

class Executive(Employee):
    def __init__(self, name, wage, yearlyBonus):
        Employee.__init__(self, name, salary)
        self._yearlyBonus = yearlyBonus

    def wage(self):
        return Employee.wage(self)

最佳答案

您可以使用super()调用当前类的超类:

def __init__(self, name, salary, manager):
    super(Worker, self).__init__(name, salary)
    self._manager = manager

07-24 09:21