Problem with Lexical Scope

bonono at gmail.com bonono at gmail.com
Mon Dec 12 10:27:06 CET 2005


jslowery at gmail.com wrote:
> That does make sense. So there is no way to modify a variable in an
> outer lexical scope? Is the use of a mutable data type the only way?
>
> I'm trying to think of a case that would create semantic ambiguity when
> being able to modify a variable reference in an outer scope, but I
> cannot (which is probably short-sighted). Is this behavior correct
> because of performance or perhaps because of a certain design of the
> interpreter?

That is by design and IMO a good thing as you don't need to declare
things(the '=' sort of done it for you) in python. I think you can do
something like globals()['s'] but that is ugly and should be
discouraged.

Just use a mutable object like s=[1] or a Ref class or whatever similar
implementation if you need this "shared write" functionality. Just
reading is perfectly fine.




More information about the Python-list mailing list