1
我正在unorderable类型:ShiftSupervisor()< INT()当我运行与Employee类的 ShiftSupervisor子类中的以下的程序。在这个小类中,我想根据在主程序中输入的年销售额来确定奖金$。类型错误:unorderable类型:ShiftSupervisor()<INT()
#This Employee class holds general data about employess and will
# end up as the superclass for this example.
class Employee:
def __init__(self, emp_name, emp_number):
self.emp_name = emp_name
self.emp_number = emp_number
def set_emp_name(self, emp_name):
self.emp_name = emp_name
def set_emp_number(self, emp_number):
self.emp_number = emp_number
def get_emp_name(self):
return self.emp_name
def get_emp_number(self):
return self.emp_number
#The ShiftSupervisor class holds the general data from superclass Employee
# as well as Employee shift time and pay rate making it a subclass
# of Employee.
class ShiftSupervisor(Employee):
def __init__(self, emp_name, emp_number, annual_salary, sales):
#call the superclass
Employee.__init__(self, emp_name, emp_number)
self.annual_salary = annual_salary
self.sales = sales
def set_annual_salary(self, salary):
self.annual_salary = salary
def set_sales(self,sales):
self.sales = sales
def get_annual_salary(self):
return self.annual_salary
def get_sales(self):
return self.sales
#Determining the bonus based on the sales figures.
def bonus_rate(sales):
if sales <10000:
bonus_rate = sales*0.10
if sales >=10000 and sales <= 14999:
bonus_rate = sales*0.12
if sales >=15000 and sales <=17999:
bonus_rate = sales*0.14
if sales >=18000 and sales <= 21999:
bonus_rate = sales*0.16
else:
bonus_rate = sales*0.18
return bonus_rate
# The main program
import shiftsupervisor
def main():
first = input("Enter the shift supevisor's first name: ")
last = input("Enter the the shift supevisor's last name: ")
emp_number = input("Enter the shift supevisor's ID number. ")
salary = float(input("What is the annual salary of the shift supevisor? $"))
sales = float(input("What are the annual sales for the shift? $"))
emp_name = first + " " +last
supervisor = shiftsupervisor.ShiftSupervisor(emp_name, emp_number, salary, sales)
print()
print('\t Shift Supervisor Information')
print('---------------------------------------------------------------')
print("Supervisor Name: \t\t", supervisor.get_emp_name())
print("Employee Number:\t\t", supervisor.get_emp_number())
print("Annual Salary for the supervisor is: \t$ " , format(supervisor.get_annual_salary(),',.2f'),sep='')
print("Annual Bonus for the supervisor is: \t$ ", format(supervisor.bonus_rate(), ',.2f'),sep = '')
main()
'bonus_rate'在*'ShiftSupervisor'里面,所以第一个('sales')参数就是实例本身。你的意思是'self.sales'? – jonrsharpe
我没有使用self.sales,但带来了“销售”,因为在这 - > get_bonus_rate(销售):而不是这样做 - > get_bnous_rate(self): – AtxTom