On Tue, Sep 13, 2016 at 7:19 AM, BartC <b...@freeuk.com> wrote:
> By the same argument, then strings and ints are also mutable.
>
> Here, the original tuple that a refers to has been /replaced/ by a new one.
> The original is unchanged. (Unless, by some optimisation that recognises
> that there are no other references to it, the original is actually appended
> to. But in general, new objects are constructed when implementing +=.)

And by definition, that optimization cannot be detected. At best, all
you could do is something like:

old_id = id(a)
a += something
if id(a) == old_id:
    print("We may have an optimization, folks!")

But that can have false positives. If two objects do not concurrently
exist, they're allowed to have the same ID number.

ChrisA
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to