Objekte in Liste

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
akIra
User
Beiträge: 49
Registriert: Dienstag 3. Dezember 2002, 12:05
Wohnort: Berlin
Kontaktdaten:

Objekte in Liste

Beitragvon akIra » Mittwoch 22. Januar 2003, 14:23

Heya,
ich habe eine Klasse Mitarbeiter:

Code: Alles auswählen

class Mitarbeiter:
    def __init__(self):
        self.Name = ""
        self.Privat = ""
        self.Handy = ""
        self.Anderes = ""


Dann habe ich eine Methode die mir eine Liste aus Objekten des Typs Mitarbeiter zusammenstellt:

Code: Alles auswählen

def Open_TBK(self, FName):
        Liste = []
        #Datei lesen
        while 1:
            a = TBF.readline()
            if not a:
                TBF.close
                break
            if a[:1] == "@":
                Liste.append(Mitarbeiter())
                Liste[-1:].Name(a[1:])
            elif a[:5]=="Handy":
                Liste[-1:].Handy = a[6:]
            elif a[:6]=="Privat":
                Liste[-1:].Privat = a[7:]
            elif a[:7]=="Anderes":
                Liste[-1:].Anderes = a[8:]
            else:
                #...
        return Liste

Das append geht, aber die Zuweisung darunter:
->Liste[LetzterEintrag].Name = XY
liefert nur nur die Exception:
AttributeError: 'list' object has no attribute 'Name'

Ich habe auch schon versucht mir die Klasse Mitarbeiter anders zu gestallten:

Code: Alles auswählen

class Mitarbeiter:
    def __init__(self):
        self.Name = ""
        self.Privat = ""
        self.Handy = ""
        self.Anderes = ""
   
    def SetName(Name):
        self.Name = Name
       
    def SetPrivat(self, PrivatNr):
        self.Privat = PrivatNr
       
    def SetHandy(self, HandyNr):
        self.Handy = HandyNr
       
    def SetAnderes(self, Anderes):
        self.Anderes = Anderes


Aber genau dass selbe passiet nur dass er jetzt die Methode nicht findet...
Dass ist wahrscheinlich ein recht wichtiger programmiertechnischer Bereich, aber aus den deutschen Tut´s konnte ich nix erschliessen :cry:

Ciao,
aki
ASCII158
User
Beiträge: 80
Registriert: Samstag 28. September 2002, 15:40
Wohnort: München
Kontaktdaten:

Beitragvon ASCII158 » Mittwoch 22. Januar 2003, 14:57

Liste[-1:] liefert immer eine Liste zurück.
du musst Liste[-1:][0] einsetzen...
mfg,

10011110
Benutzeravatar
akIra
User
Beiträge: 49
Registriert: Dienstag 3. Dezember 2002, 12:05
Wohnort: Berlin
Kontaktdaten:

Beitragvon akIra » Mittwoch 22. Januar 2003, 15:15

doh :shock: , merci
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Mittwoch 22. Januar 2003, 16:54

Hi,

oder einfach Liste[-1] ohne Doppelpunkt! Liefert das letzte Element der Liste.

Bei Deiner 2. Version von Mitarbeiter haste bei def SetName(... den Parameter self vergessen!

Gruß

Dookie

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], noisefloor, StareDog