所以,这是我学校的决赛周所以我在教科书中练习了一些额外的问题,我们的教授说“可能会也可能不会”在他尚未教授的决赛中。所以我被困在整个类的概念上。我们正在使用Python。这是问题所在。使用这些构造函数: int () - 构造函数,将工人的nae(作为字符串)和每小时工资率(作为数字)作为输入,changeRate():将新的工资率作为输入并将工人的工资率更改为新的每小时费率,pay() - 将工作小时数作为输入并打印“未实施”
接下来,将HourlyWoker和SalariedWorker作为Worker的子类开发。每个重载都使用继承的方法pay()来比较工人的每周工资。每小时工人按实际工作小时数按小时工资;超过40的任何加班时间都是双倍的。无论工作时数如何,受薪工人的工资都是40小时。因为os小时数与无关紧要,所以受薪工人的方法pay()应该都可以用输入参数调用。
到目前为止,我了解我应该输入什么以及在输入后应该得到什么。但实际上创建该函数并不适用于。
所以对于我的结果我想输入
w1 = Worker( 'Jeff', 15)
w1.pay(35)
Not Implemented
w2 = SalariedWorker('Sam', 14.50)
w2.pay()
580.0
w3 = HourlyWorker('Daisy', 20)
w3.pay(25)
500
如果有人能帮助我,我会非常感谢澄清。哦,当我尝试将一行像def __ 添加 __ :添加到python中时,它会返回语法错误。
答案 0 :(得分:1)
以下课程结构应符合您的要求:
class Worker(object):
payme = False
period = None
def __init__(self, name, sal):
self.name = name
self.sal = sal
def pay(self, period=None):
if not self.payme:
print 'Not Implemented'
return
if self.period:
return self.period*self.sal
elif not period:
print 'Please, give a period'
return
elif period:
return period*self.sal
def __add__(self, other):
# here adding the salary (sal), but you can add whatever you wish...
return self.sal + other.sal
class SalariedWorker( Worker ):
payme = True
period = 40
class HourlyWorker( Worker ):
payme = True