-1

所以,这是我学校的期末考试周,所以我正在教科书中练习一些额外的问题,我们的教授说“可能会或可能不会”出现在他还没有教过的期末考试中。所以我被困在类的整个概念上。我们正在使用 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 __ add __ : 之类的行放入 python 时,它会返回语法错误。

4

1 回答 1

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
于 2013-06-05T20:07:18.393 回答