Python triedy stupňa posledné prepis všetky ostatné

0

Otázka

Mám priradenie, kde som musel vytvoriť trieda pre Zamestnancov, čítať textový súbor obsahujúci zamestnanec informácie ako sklad objekt, prečítajte si v odpracovaných hodín súboru a vytvoriť platobné informácie slovník z súbory. Tak ďaleko to sa zdá byť v poriadku, pokiaľ ich je len jeden zamestnanec v zamestnaneckých textový súbor, ale akonáhle som sa zahŕňajú druhú, prvý je prepísaná a informácie pre druhého je to, čo vytvorili. Je to niektoré informácie, ktoré som doteraz:

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)

To je to, čo som doteraz, a to sa vracia správny výstup, ale keď som zahŕňajú druhú líniu s druhým zamestnanca, ktorý je miesto, kde budem mať problémy. Tiež, len poznámka, parametre pre výplatnej páske mám byť dátum a hodiny práce z hodín textový súbor, a nie len textový súbor. Som celkom nový programovanie, takže ospravedlňujem sa, ak to je základný fix, som strávil posledných 3 dňoch sa snaží prísť na to, návštevou rôznych dosiek a webové stránky. Akákoľvek pomoc bude s vďačnosťou prijatá.

class dictionary file object
2021-11-23 14:15:15
1

Najlepšiu odpoveď

0

riadok

return stf

návrat z setup funktion po readin prvý riadok bez ohľadu na to, čo. Ak chcete uložiť všetky riadok v zozname Zamestnancov objekty, ktoré potrebujete na vybudovanie tohto zoznamu a potom ju vrátiť. niečo ako, že

        with open(hrs) as hFile:
            stf = []
            for line in hFile:
                SID, date, HrsWorked = line.split()
                stf.append(Staff(SID, LN, FN, int(RH), int(HR), float(OTM), int(TC), int(SB),date, HrsWorked))
            return stf

potom by ste mali dostať všetky riadky v hFile. To povedal tak, ako sa stavať je len stange. môžete si vytvoriť zamestnancov objekt breat zoznam zamestnancov objekty ?

možno budete chcieť reštrukturalizovať svoj kód do Služobného triedy a StaffMember triedy? týmto spôsobom budete mať Zamestnancov objekt, ktorý má Členov hodín. Ale môžem sa mýliť, tu, pretože som dont vidieť celý obrázok

zdravie

Markus

2021-11-23 14:51:37

Vďaka za odporúčanie, ja, ako máte uvedené, a vytvorí sa prázdny stf zoznam pred čítania súborov a pripojenie na stf zoznamu. Ale dostal som nasledovnú chybu: AttributeError: "zoznam" objekt nemá atribút "výplatnej páske'. Tiež, priradenie požadovaných len jedna trieda vytvorené
HelpNeeded

teraz máte zoznam zamestnancov objekty, takže si neet na itterate cez zoznam a zavolať na výplatnej páske každý em.
Markus Rosjat

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................