learning python ...
Greg Ewing
greg.ewing at canterbury.ac.nz
Mon May 24 18:37:07 EDT 2021
On 25/05/21 9:27 am, Cameron Simpson wrote:
> On 24May2021 16:17, hw <hw at adminart.net> wrote:
>
>> Or it doesn't forget
>> about the old one and the old one becomes inaccessible (unless you
>> have a reference to it, if there is such a thing in python). How do
>> you call that?
>
> You're conflating values
> (objects, such as an int or a string) with variables (which _are_
> references in Python,
I think hw might have meant the C++ notion of a reference to
a *variable*. There is no equivalent of that in Python.
Python does have references to *objects*. All objects live on
the heap and are kept alive as long as there is at least one
reference to them.
If you rebind a name, and it held the last reference to an
object, there is no way to get that object back.
On the other hand, if you shadow a name, the original name
still exists, and there is usually some way to get at it,
e.g.
>>> int = 42
>>> int
42
>>> __builtins__.int
<class 'int'>
>>>
--
Greg
More information about the Python-list
mailing list