Ich beschäftige mich seit 'n paar Tagen mit Python, und muss sagen, dass ich von der Sprache begeistert bin. Jetzt steh ich allerdings vor einem Problem, bzw. kann das Verhalten des Interpreten in keinster Weise nachvollziehen:
Code: Alles auswählen
class Object:
daten = {}
def __init__(self, daten):
for wert, inhalt in daten.iteritems():
self.daten[wert] = inhalt
class World:
objects = {}
def __init__(self):
zu_verarbeitende_daten = {}
zu_verarbeitende_daten['test1'] = {}
zu_verarbeitende_daten['test1']['wert1'] = "Ich bin der Inhalt von ['test1']['wert1']"
zu_verarbeitende_daten['test2'] = {}
zu_verarbeitende_daten['test2']['wert1'] = "Ich bin der Inhalt von ['test2']['wert1']"
for name, daten in zu_verarbeitende_daten.iteritems():
self.addObject(name, daten)
def addObject(self, name, daten):
if not self.objects.has_key(name):
self.objects[name] = {}
self.objects[name] = Object(daten)
##### main() #####
world = World()
for name, object in world.objects.iteritems():
for wert, inhalt in object.daten.iteritems():
print "name = " + name + "; wert = " + wert + "; inhalt = " + inhalt
Code: Alles auswählen
name = test1; wert = wert1; inhalt = Ich bin der Inhalt von ['test2']['wert1']
name = test2; wert = wert1; inhalt = Ich bin der Inhalt von ['test2']['wert1']
Er hat ja - völlig korrekt - zwei Objekte erzeugt, aber ich begreife nicht, wieso die beiden Werte dieselben sind.
- Lynx