Seite 1 von 1

mit getattr() auf beliebige Elemente zugreifen

Verfasst: Sonntag 6. Oktober 2002, 09:24
von hans
Beispielaufgabe: Du hats eine Seite mit zwanzig Elementen QLineEdit. Diese sollen beim Programmstart mit irgendwelchen Werten vorbelegt werden. Man kann natürlich für jedes LineEdit Feld einge Zeilen schreiben, man kann aber auch eine Schleife einsetzen wie etwa folgende:

Code: Alles auswählen

    self.editFields = {}
    self.editFields = ['edField1', 'edField2', 'edField3']

    for field in self.editFields:
      attrib = getattr(self, field, None)
      if attrib == None:
        break
      attrib.setText(field)
Hans

Re: mit getattr() auf beliebige Elemente zugreifen

Verfasst: Sonntag 6. Oktober 2002, 11:00
von Voges
Hallo!

Was mir noch auffiel nach Absenden meines anderen Beitrags zu Thema:

- In der ersten Zeile erzeugst Du ein leeres *Dictionary*. Ist allerdings nicht schädlich da, Du es danach gleich wieder mit einer Liste überschreibst.

- wäre ein continue anstelle eines break nicht besser, damit, wenn das Programm das Attribut self.edField1 nicht findet, wenigstens die anderen Attribute noch bearbeitet werden? Hängt sicherlich von der Programmlogik ab.

Jan

Re: mit getattr() auf beliebige Elemente zugreifen

Verfasst: Sonntag 6. Oktober 2002, 15:47
von hans
Voges hat geschrieben:- In der ersten Zeile erzeugst Du ein leeres *Dictionary*. Ist allerdings nicht schädlich da, Du es danach gleich wieder mit einer Liste überschreibst.

- wäre ein continue anstelle eines break nicht besser, damit, wenn das Programm das Attribut self.edField1 nicht findet, wenigstens die anderen Attribute noch bearbeitet werden? Hängt sicherlich von der Programmlogik ab.

Jan
Nee, hat nix mit Programmlogik zu tun, ist halt erst meine zweite Woche mit Python und deshalb noch ein Anfängerfehler!

Trotzdem Danke

Hans