Ezio Melotti added the comment: To clarify, with "depends on the implementation" I meant the way a particular class is implemented (i.e. a class might decide to return a new object even if it's mutable). The behavior of built-in types is well defined and should be the same across all the Python implementations. Regarding the comment about immutable types, it's something specific to CPython (I don't remember the specific details though, so I might be wrong), and somewhat similar to:
'a'*20 is 'a'*20 True 'a'*25 is 'a'*25 False This shouldn't be a problem though, so if you e.g. do "x = y = immutableobj; y += 1", 'x' should never be affected.
---------- _______________________________________ Python tracker <report@bugs.python.org> <http://bugs.python.org/issue16701> _______________________________________