How do I do this? (eval() on the left hand side)
caleb.hattingh at gmail.com
caleb.hattingh at gmail.com
Thu Dec 9 07:26:29 EST 2004
Both Peters :)
Sure, I must concede that the problem here was my expectation of how
things should work.
Thanks for the explanations. I still don't really know whether this
behaviour of locals() is the result of a design decision, or an
implementation artifact of CPython, but at least I have a clear idea of
how to play nice with locals().
thx
Caleb
Peter Otten wrote:
> Caleb Hattingh wrote:
>
> > I am convinced now that locals() doesn't work as (I) expected.
Steven
> > says there was some or other reason why locals() as used in this
context
> > is not writable - Do you know why this is? I really do not like
> > guidelines like "may not work", "is unreliable" and so on. Perhaps
this
> > is a character flaw, but I really do like to know what works, when
it
> > works, and when it doesn't work.
>
> I think Peter Hansen has answered that. Your expectations were just
wrong.
>
> > In this scenario, we can see it doesn't work. To my eyes, it
doesn't work
> > *in the way I expect* (which is highly subjective, no argument
there).
> > Would this be a situation where it would be nice to have an
exception
> > thrown if locals() is assigned to in a scope where it is not
writable?
>
> If python were to throw an exception, it should always be thrown. But
I'm
> the wrong one to worry about that as I didn't even find a single
>
> globals()[name] = value
>
> assignment in my scripts. I want to know a variable's name, or I put
it in a
> dictionary.
>
> > It would also be nice if globals and locals behaved the same,
differing
> > only in scope (which is what I expected originally anyway). But we
can't
> > have everything, I guess :)
>
> That would mean that both would become read-only, I guess, but I
don't see
> that happen.
>
> Peter
More information about the Python-list
mailing list