Это мой код:
w1 = ch8.Worker("Joe", 15)
print(w1.pay(35)) # Not implemented
w2 = ch8.SalariedWorked("Sue", 14.50)
print(w2.pay()) # 580.0
print(w2.pay(60)) # 580.0
w3 = ch8.HourlyWorker("Dana", 20)
print(w3.pay(25)) # 500
w3 = changeRate(35)
print(w3.pay(35)) # 875
А это классы Worker, SalarieWorked и HourlyWorker, которые я реализовал в файле ch8.py:
class Worker:
def __init__(self, worker_name="Unknown", hourly_pay_rate=0.0):
self.worker_name = str(worker_name)
self.hourly_pay_rate = float(hourly_pay_rate)
def changeRate(self, new_pay_rate):
self.new_pay_rate = float(new_pay_rate)
self.hourly_pay_rate = self.new_pay_rate
def pay(self, number_of_hours):
self.number_of_hours = number_of_hours
return "Not implemented"
class HourlyWorker(Worker):
def pay(self, number_of_hours):
self.number_of_hours = int(number_of_hours)
if self.number_of_hours > 40:
return (
40 * self.hourly_pay_rate
+ (self.number_of_hours - 40) * self.hourly_pay_rate * 2
)
return self.number_of_hours * self.hourly_pay_rate
class SalariedWorked(Worker):
def pay(self, number_of_hours=40):
self.number_of_hours = int(number_of_hours)
return 40 * self.hourly_pay_rate
Вот что я получаю при выполнении кода:
Не реализовано
580,0
580,0
500,0
Трассировка (последний последний вызов):
Файл "C:\Users\carol\PycharmProjects\ProblemasPraticos\book_Intro_Computing_Using_Python\Chapter 8\8_Exercises.py", строка 137, в
w3 = changeRate(35)
NameError: name ' changeRate' не определен
Кто-нибудь может помочь мне понять, почему эта ошибка?
Спасибо!