这是我的作业:
问题的第一部分是定义子类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