Variable im Objektnamen

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.
Antworten
Jonso
User
Beiträge: 8
Registriert: Montag 23. August 2010, 15:00

Moin,
ich würde gerne die Eigenschaften mehrerer Objekte ändern und
wollte dafür eine for-Schleife verwenden.

Code: Alles auswählen

for i in range(5):
    print(self.objekt_i.eigenschaft)
Jetzt weiß ich nicht, wie ich es so umschreibe, dass "i" nicht als
Objektname sondern als Variable erkannt wird.
Es kann gut sein, dass ich grade einfach etwas offensichtliches
übersehe, aber über Hilfe würde ich mich trotzdem freuen :D
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Ja, du hast übersehen, dass man Attributnamen nicht durchnummerieren sollte. Statt:

Code: Alles auswählen

class MyClass:
    def __init__(self):
        self.object_0 = ...
        self.object_1 = ...
        ...
solltest du einfach eine Liste verwenden:

Code: Alles auswählen

class MyClass:
    def __init__(self):
        self.objects = []
        self.objects.append(...)
        self.objects.append(...)
        ...
Dann kannst du hinterher sowas machen:

Code: Alles auswählen

for each in self.objects:
    print(each.eigenschaft)
In specifications, Murphy's Law supersedes Ohm's.
Antworten