ich habe ein Verständnisproblem mit Klassen, welche dynamisch erzeugt werden. In dem Beispielcode, welchen ich unten angehängt habe, möchte ich das Object "MyObject" vom Typ Container mit mehreren "Zonen" (= nZones) anfüllen. Jede Zone ist dabei wieder ein Objekt, welches Methoden etc. enthält.
Ich habe genau dies in meinem Beispielprogramm umgesetzt und musste dabei feststellen, dass Daten in den einzelnen Containern immer wieder überschrieben werden. Ich habe das Verhalten zuerst gar nicht verstanden, denn wenn ich eine Zahl in einer Zone geändert habe, dann wurden "gleichzeitig" mehrere Elemente in "MyObject" verändert. Meiner Meinung nach mache ich etwas mit den Pointern in meinem Programm nicht richtig. Es wäre nett, wenn Ihr dies kurz bewerten und mir eine Korrektur schreiben würdet. Besten Dank
Code: Alles auswählen
class Container:
def __init__(self):
self.Zone = list()
# ******************************************************************
class Object1:
def __init__(self):
X = list()
# ******************************************************************
class Object2:
def __init__(self):
Y = list()
# ******************************************************************
#
# ******************************************************************
MyObject = Container()
#
for z in range(0, nZones):
if ((z % 2) == 0):
O1 = Object1()
MyObject.Zone.append(O1)
else:
O2 = Object2()
MyObject.Zone.append(O2)
... Code um die Felder X und Y in den Zonen aufzuspannen...