Nov-19-2021, 12:00 AM
Thanks for replying
from abc import ABC,abstractmethod import itertools from enum import Enum, auto class Employee(ABC): employee_id = itertools.count(1000) def __init__(self,first_name,last_name,id_number,hours_worked,total_wage = 0,Position position): self.set_first_name(first_name) self.set_last_name(last_name) self.id_number = next(self.employee_id) self.set_hours_worked(hours_worked) self.total_wage = self.calculate_pay() def get_first_name(self): return self.first_name def get_last_name(self): return self.last_name def get_id_number(self): return self.id_number def get_hours_worked(self): return self.hours_worked def set_first_name(self,first_name): if not first_name: raise Exception("FIRSTNAME FIELD CANNOT BE EMPTY!") self.first_name = first_name def set_last_name(self,last_name): if not last_name: raise Exception("LAST NAME FIELD CANNOT BE EMPTY!") self.last_name = last_name def set_id_number(self,id_number): self.id_number = id_number def set_hours_worked(self,hours_worked): if hours_worked < 0: raise Exception("HOURS CANNOT BE LESS THAN 0!") self.hours_worked = hours_worked @abstractmethod def calculate_pay(self): pass def __str__(self): return '\nName: {} \nLastName: {} \nId Number: {} \nHours Worked: {} \nTotal Pay: {} \nPosition: {}'.format(self.first_name, self.last_name,self.id_number,self.hours_worked,self.calculate_pay(),self.position) class Operator(Employee): amount_per_hour = 9.80 def __init__(self,first_name,last_name,id_number,hours_worked,total_wage = 0,position): super().__init__(first_name,last_name,id_number,hours_worked,total_wage = 0,position) def calculate_pay(self): return round(self.amount_per_hour * self.hours_worked) def __str__(self): return super(Operator,self).__str__() class Supervisor(Employee): amount_per_hour = 12.10 def __init__(self,first_name,last_name,id_number,hours_worked,total_wage = 0,position): super().__init__(first_name,last_name,id_number,hours_worked,total_wage = 0,position) def calculate_pay(self): return round(self.amount_per_hour * self.hours_worked) def __str__(self): return super(Supervisor,self).__str__() class Manager(Employee): def __init__(self,first_name,last_name,id_number,hours_worked,total_wage = 0,position): super().__init__(first_name,last_name,id_number,hours_worked,total_wage = 0,position) def calculate_pay(self): return 4000 def __str__(self): return super(Manager,self).__str__() class Position(Enum): OPERATOR = "operator" SUPERVISOR = "supervisor" MANAGER = "manager" def main(): o = Operator("Kevin","ward",0,39,0,Position.SUPERVISOR) print(o) main()
Error:Traceback (most recent call last):
File "C:\Users\Sephiroth\Desktop\thonny\Employee3.py", line 11
def __init__(self,first_name,last_name,id_number,hours_worked,total_wage = 0,Position position):