Replacement for keyword 'global' good idea? (e.g. 'modulescope' or 'module' better?)
Peter Hansen
peter at engcorp.com
Sat Aug 6 13:26:55 EDT 2005
Paolino wrote:
> seberino at spawar.navy.mil wrote:
> def enclosing():
> var=[]
> var[0]=2
> def enclosed():
> var[0]=4
> which is like saying python is not working
>
> It's ok to mark non locals,but why var=4 is not searched outside and
> var[0]=4 yes?
Because "var=4" rebinds the name "var", while "var[0]=4" does not. It's
exactly the same issue with using "global", where you don't need it if
you aren't rebinding the name.
(Those who don't understand the difference between "rebinding a name"
and "modifying an object" will need to figure out that distinction
before they can participate much in a discussion about Python scopes, I
think.)
-Peter
More information about the Python-list
mailing list