Writing an immutable object in python
Hi, I've noticed that if I initialize list of integers in the next manner: >>> my_list = [0] * 30 It works just fine, even if I'll try to assign one element: >>> id( my_list[4] ) 10900116 >>> id( my_list[6] ) 10900116 >>> my_list[4] = 6 >>> id( my_list[4] ) 10900044 >>> id( my_list[6] ) 10900116 The change in the poision occurs becouse int() is an immutable object. if I will do the same with a user-defined object, This reference manipulating will not happen. So, every entry in the array will refer to the same instance. Is there a way to bypass it (or perhaps to write a self-defined immutable object)? -- http://mail.python.org/mailman/listinfo/python-list
Re: Writing an immutable object in python
Ok, I've understood my mistake. Now, my list contains a shared entry of an empty object. When an entry is needed to be changed, I check if the entry is the shared empty object; in that case I create a new unique instance. If the entry is already a unique instance, I use it, so the empty object isn't touched. Thanks, Guy. -- http://mail.python.org/mailman/listinfo/python-list
