Hallo an Alle!
Ich versteh es einfach nicht, und ich hab mich hier schon einige Zeit an dem Problem festgebissen.
Ich habe folgendes konstruiert:
Klasse F
Klasse X
in Klasse F gibt es die Variable xliste (Datentyp Liste) in der Instanzen von X gespeichert sind.
So nun nehmen wir mal an, dass ich Instanzen von F mit den Namen f1 und f2 erstelle. und ich füge nun Instanzen von X zu f1.xliste zu. Dann tauchen diese Instanzen bei f2.xliste auf.
Wenn ich im Debugger von PyDev bin, dann seh ich, folgendes:
f1.xliste[0] <...object at 0x01367F70>
f1.xliste[1] <...object at 0x01367BF0>
und komischerwiese sind diese Adressen (?!?) die gleichen wie in
f2.xliste, also
f2.xliste[0] <...object at 0x01367F70>
f2.xliste[1] <...object at 0x01367BF0>
Wie stell ich das ab, dass beim Hinzufügen von Instanzen in einer Klasse, die in der anderen auftauchen?!?
Instanzen von Klassen in Liste
Ich vermute mal, daß du 'xliste' als Klassenattribut definiert hast. Dann ist 'xliste' tatsächlich für alle Instanzen von F das selbe Objekt.
Klassenattribute sind aber nur selten das, was man wirklcih will. So sollte es aussehen:
Meine Kristallkugel sagt mir, daß es bei dir eher so aussieht:
Klassenattribute sind aber nur selten das, was man wirklcih will. So sollte es aussehen:
Code: Alles auswählen
class F(object):
def __init__(self):
self.xliste = []
Code: Alles auswählen
class F(object):
xliste = []
def __init__(self): pass
Tatsache... Ja... Du hast recht. Nun klappts... *heul*
DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE!
DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE! DANKE DANKE DANKE DANKE DANKE!
Ich hab so das Gefühl dass du mit dem Gallileo OpenBook "lernst", weil ich in fast keinem Buch "sowas" gesehen habe, falls du es verwendest nimm lieber ein anderes
http://bj.spline.de/python_openbook.html
http://bj.spline.de/python_openbook.html
the more they change the more they stay the same