Hi everybody,

I am quite new to python and using it for my thesis. Luckily I found out some kind of behavior surprising to me and so unwanted in my code. I could not find any explanation, so solution for the code.
It is simply like this:

/*li = another_module.global_variable
f=simpleCut(li)

def simpleCut(d=dict()):
      temp=d
      for i in temp.keys():
          if    (temp[i] == .......) :
             temp[i]=new_value
return temp
*/
here /*simpleCut(d=dict())*/ is a function that changes the value of the key in the d if it satisfies conditions and returns the new dictionary. what i do not understand is, when i checked the original dictionary /*li,*/ i also found out that, the value of that key(operated in the if statement) had also been changed. so, simply, the simpleCut function also changes the variables of its own argument, even there is a 'temp' variable. That is a scandal for my code:)

please tell me, if this is not possible and i am missing another thing in my code, or if this kind of behavior is possible, what is the philosophy of it, and how can i change it???

cheers

B.D.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to