Nested function scope problem

Bruno Desthuilliers bdesth.quelquechose at free.quelquepart.fr
Thu Jul 27 16:10:55 EDT 2006


Gerhard Fiedler a écrit :
> On 2006-07-25 13:33:40, Dennis Lee Bieber wrote:
> 
> 
>>>Surprising for me are actually two things: 1- the fact itself, and 2- that
>>>term "binding", and that whatever it means (I'll have to read more on that,
>>>now that I know the term) is different for read-only and read/write access.
>>>
>>
>>Binding only happens when the bare name is on the LHS of an assignment
>>(or, to complicate matters, passed as an argument). 
>  
> This makes a lot more sense now.
> 
>>Binding has nothing to do with "read-only" vs "read/write" access.
> 
> 
> Isn't being on the LHS the only way to write to a non-mutable object? 

You *don't* "write to a non-mutable object". You rebind the name to 
another object (mutable or not, that's not the problem).

>Are
> there situations where binding happens without writing to a variable?

binding and "assignment" (what you call "writing to a variable") are the 
very same operation.

> Are
> there write accesses to non-mutable objects

No.

> where the name is not on the
> LHS?

Doesn't matter when it comes to immutable objects. As the name imply, 
you cannot modify an immutable object once it's created. Rebiding a name 
  bound to an immutable object doesn't impact the object[1], it just 
makes the name refers to another object.


[1] or, to be more exact, it only decreases the object's reference 
count, which can lead to the object being disposed of...



More information about the Python-list mailing list