Code: Alles auswählen
#!/usr/bin/python
# -*- coding: UTF-8 -*-
class test:
def __init__(self):
self.data = {
"test": "init"
}
self.d = self.data["test"]
def test(self):
print self.data
print self.d
print id(self.d)
print id(self.data["test"])
print
def change_dict(self):
self.data["test"] = "changed!"
def change_d(self):
self.d="changed!"
t = test()
t.test()
t.change_d()
t.test()
print "="*80
t = test()
t.test()
t.change_dict()
t.test()
Also wie man sehen kann, ist es so, das self.d und self.data["test"] erstmal das selbe Objekt sind, aber nachdem eines von Beiden geändert wird, ist es nicht mehr das selbe Objekt, denn auch der Wert wird nicht direkt beim anderen geändert...{'test': 'init'}
init
-1210445760
-1210445760
{'test': 'init'}
changed!
-1210445472
-1210445760
================================================================================
{'test': 'init'}
init
-1210445760
-1210445760
{'test': 'changed!'}
init
-1210445760
-1210445536
Ich hätte es aber eigentlich gern so, das sich immer gleichzeitig beide Werte ändert. Wie mach ich das???