bruno at modulix wrote: > re-phrase it according to how Python works, and you'll get the answer: > > "Is there a way to bind multiple names to the same object, but so the > identity of this object is different from the identity of this object ?"
Which raises an interesting parallel question: is there a way to clone an arbitrary object? If so you could do this: >>> a = something >>> b = clone (a) >>> id(a) == id(b) False For lists, a slice-copy creates a clone: >>> a = [1,2,3] >>> b = a[:] >>> id(a) == id(b) False For arithmetic types, an identity operation works for large values: >>> a = 12345 >>> b = a + 0 >>> id(a) == id(b) False but not small ones: >>> a = 5 >>> b = a + 0 >>> id(a) == id(b) True With booleans (and None) it will never work since the interpreter only stores one copy of each value. I'm not saying this approach is a good idea -- value semantics are almost always preferable, and playing with interpreter internals usually leads to trouble. But as an academic exercise, how close can you get to a universal clone function? -- http://mail.python.org/mailman/listinfo/python-list