Eu tenho uma tarefa em que eu tenho que criar uma classe para os Trabalhadores, lido em um arquivo de texto contendo informações de funcionários para armazenar um objeto, a leitura em uma de horas trabalhadas e o arquivo de criar um pagamento dicionário de informações de arquivos. Então, agora parece estar funcionando bem, contanto que a sua é apenas um empregado, o empregado arquivo de texto, mas assim que eu incluir um segundo, o primeiro é substituído e a informação para o segundo é o que é criado. Esta é uma das informações que tenho até agora:
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)
Isso é o que eu tenho até agora, e devolve o resultado correcto, mas quando eu incluir uma segunda linha, com um segundo membro da equipe que é onde eu recebo os problemas. Além disso, apenas uma nota, os parâmetros para a folha de pagamento tem que ser a data e as horas trabalhadas a partir do horário de arquivo de texto e não apenas o arquivo de texto. Eu sou muito novo para programação de modo desculpas se esse é um fix, eu passei os últimos 3 dias tentando descobrir por visitar placas diferentes e sites. Qualquer ajuda seria muito apreciada.