Python instanci třídy poslední přepisovat všechny ostatní

0

Otázka

Mám úkol, kdy mám vytvořit třídu pro Zaměstnance, číst v textovém souboru, který obsahuje informace o zaměstnancích uložit jako objekt, číst v hodinách pracoval souboru a vytvořit platební informace slovníku ze souborů. Takže, zatím se zdá být v pořádku tak dlouho, jak jejich je jen jeden zaměstnanec zaměstnanec textový soubor, ale hned jak jsem se patří a za druhé, první se přepíše a informací pro druhé je to, co vytvořil. To je některé z informací, které zatím mám:

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, co jsem tak daleko, a vrátí správný výsledek, ale když jsem zahrnovat druhý řádek s druhým členem personálu, který je tam, kde mám problémy. Také, jen poznámka, parametry pro výplatní pásku musí být datum a počet odpracovaných hodin z hodin textovém souboru a ne jen textový soubor. Jsem poměrně nový na programování, takže se omlouvám, pokud to je základní oprava, jsem strávil poslední 3 dny se snažím na to přijít tím, že navštívíte různé desky a webových stránek. Jakýkoliv pomoci chtěl bych být ocenil.

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

Nejlepší odpověď

0

linka

return stf

návrat z nastavení funktion po čtení prvním řádku bez ohledu na to, co. Pokud chcete ukládat všechny linky v seznamu Zaměstnanců objekty, budete muset vytvořit seznam a pak jej vrátit. něco jako, ž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

pak byste měli dostat všechny řádky v hFile. To řekl, jak to je, stavět je jen tyč. budete stavět staff se dají výstavní pauzu seznam zaměstnanců objekty ?

možná bys mohl restrukturalizovat svůj kód do Služební třídy a StaffMember třídy? tímto způsobem budete mít Zaměstnanci objekt, který má Členy s hodinami. Ale i tady může být špatně, protože jsem dont vidět celý obrázek

na zdraví

Markus

2021-11-23 14:51:37

Díky za doporučení, udělal jsem, jak jste se zmínil, a vytvořil prázdný stf seznam před čtením souborů a připojením k stf seznamu. Ale mám následující chybě: AttributeError: 'seznam' objekt nemá žádný atribut 'složenku'. Také, přiřazení požádala pouze jedna třída vytvořeno
HelpNeeded

nyní máte seznam zaměstnanců objekty tak, že jste neet itterate přes seznam a volání složenku na každé z nich.
Markus Rosjat

V jiných jazycích

Tato stránka je v jiných jazycích

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