Hallo list, here again I have a problem whose solution might be very obvious, but I really cannot see it: I have a class having as attribute a dictionary whose keys are names and values are instance of another class. This second class has in turn as an attribute a dictionary. I want a function of the first class that can change value of one of the second class instance's dictionary. however I cannot do it without modifying this attribute for ALL the instance of the second class contained in the first class' dictionary. What I'm doing wrong?
the code: ############### ###can i change a dictionary attribute of an instantated object without affectin all the instances of that object? class mistClass(): def __init__(self,name,cDict={}): print 'mistClass ',name,' Init' self._name=name self._cDict=cDict def setName(self,n): self._name=n def getName(self): return self._name ## def setDict(self,one,two): ## self._cDict['one']=one ## self._cDict['two']=two def setDict(self,listK,listV): assert len(listK)==len(listV) for k,v in zip(listK,listV): self._cDict[k]=v def getDict(self): return self._cDict class mistClassContainer(): def __init__(self,name,dict_of_mistclass={}): print 'init mistClassContainer ',name self._name=name self._DOM=dict_of_mistclass def add_mistclass(self,mc): for el in mc: self._DOM[el]=mistClass(el) ## def mod_mistclasscDict(self,mc,one,two): ## self._DOM[mc].setDict(one,two) def mod_mistclasscDict(self,mc,lK,lV): self._DOM[mc].setDict(lK,lV) a=mistClassContainer('firsmistclasscontainer') a.add_mistclass(['mc1','mc2','mc3','mc4','mc5','mc6']) print 'before modification' for el in a._DOM.iterkeys(): print a._DOM[el].getDict() print a._DOM[el].getName() a.mod_mistclasscDict('mc1',['one','two'],['modone','modtwo']) print 'after modification' for el in a._DOM.iterkeys(): print a._DOM[el].getDict() print a._DOM[el].getName() b=mistClass('mc7') print b.getDict() print b.getName() b.setName('modified name') b.getName() for el in a._DOM.iterkeys(): print a._DOM[el].getName() -- http://mail.python.org/mailman/listinfo/python-list