Explanation of list reference
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Sat Feb 15 05:31:00 EST 2014
On Sat, 15 Feb 2014 11:10:46 +0200, Marko Rauhamaa wrote:
> Chris Angelico <rosuav at gmail.com>:
>
>> On Sat, Feb 15, 2014 at 8:43 AM, Marko Rauhamaa <marko at pacujo.net>
>> wrote:
>>> Unfortunately neither the "everything is a reference" model nor the
>>> "small/big" model help you predict the value of an "is" operator in
>>> the ambiguous cases.
>>
>> Can you give an example of an ambiguous case?
>
> The "x is y" test may yield different outcomes in different, valid
> Python implementations:
>
> 4 is 4
> (x,) is (x,)
> "hello" is "hello"
But none of those examples are ambiguous. They're merely unspecified by
the language definition. Any specific implementation of Python will
return either True or False; it may be predictable, or it might be
impossible to predict until runtime, but either way we know that every
non-broken Python virtual machine must either treat the two operands as
the same object or different objects.
These are ambiguous sentences:
I saw the man with the binoculars.
Police help assault victim.
Once there was a blind carpenter who picked up his hammer and saw.
Look at that cat with one eye.
"A Python implementation can choose whether or not to re-use immutable
objects" is not ambiguous. It's just a choice.
--
Steven
More information about the Python-list
mailing list