Tengo un trabajo donde tengo que crear una clase para los Empleados, leer en un archivo de texto que contiene la información del empleado a la tienda como un objeto, leer en las horas trabajadas y el fichero de crear un pago diccionario de información de los archivos. Así que, ahora parece estar funcionando bien, así como sus es sólo uno de los empleados en el empleado de archivo de texto, pero tan pronto como incluir una segunda, la primera se sobrescribe y la información para el segundo es de lo creado. Esta es alguna de la información que tengo hasta ahora:
class Staff:
staffData = {}
def __init__(self, EmpID, LName, FName, RHours, HRate, OTMult, TaxC, SBand, Date, HrsWorked):
self.EmpID = EmpID
self.LName = LName
self.FName = FName
self.RHours = RHours
self.HRate = HRate
self.OTMult = OTMult
self.TaxC = TaxC
self.SBand = SBand
self.Date = Date
self.HrsWorked = HrsWorked
Staff.staffData[EmpID] = self
def setup(staff ,hrs): # staff and hrs are text files
with open(staff) as empFile:
for line in empFile:
SID, LN, FN, RH, HR, OTM, TC, SB = line.split()
with open(hrs) as hFile:
for line in hFile:
SID, date, HrsWorked = line.split()
stf = Staff(SID, LN, FN, int(RH), int(HR), float(OTM), int(TC), int(SB),date, HrsWorked)
return stf
def paySlip(self,HrsWorked, date):
paymentDict = {}
#creates paySlip using information from instance and creates others by performing
calculations
return paymentDict
jg = Staff.setup('Staff.txt', 'Hrs.txt')
dic = jg.paySlip(42,'31/10/2021')
print(dic)
Esto es lo que tengo hasta ahora, y devuelve el resultado correcto, pero cuando voy a incluir una segunda línea con un segundo miembro del personal que es donde puedo conseguir los temas. Además, sólo una nota, los parámetros para la boleta de pago tiene que ser la fecha y las horas trabajadas a partir de las horas archivo de texto y no sólo el archivo de texto. Soy bastante nuevo en la programación así que disculpas si esta es una revisión, he pasado los últimos 3 días tratando de averiguar por visitar diferentes tablas y sitios web. Cualquier ayuda sería muy apreciada.