[Tutor] pointer puzzlement
Dave Angel
davea at davea.name
Fri May 8 01:57:35 CEST 2015
On 05/07/2015 05:25 PM, Alan Gauld wrote:
> On 07/05/15 21:54, Jim Mooney Py3.4.3winXP wrote:
>
>> Ah, thanks. I forgot small integers are saved in a table. I was
>> looking at
>> a demo that pointers to defaults in function parameters are persistent.
>
> But remember they variables are NOT pointers.
> They are keys in a dictionary. Very different.
>
> Also the id() function is implementation dependant so
> although it may seem to be a memory address in CPython
> it is something else in IronPython and something else
> again in Jython. The only thing guaranteed is that
> it is a unique id for that object.
Unique as long as the two objects you're examining exist at the same
time. An id() may be reused once the first object is destroyed. And in
general for CPython that happens a lot for small objects.
>
> As to default parameter values, the default object is
> persistent but if you reassign the parameter inside
> the function it will obviously lose its binding to
> the default object. It will only be reassigned to
> it on the next function call (unless it's a generator
> function).
>
--
DaveA
More information about the Tutor
mailing list