trying to modify locals() dictionary

2009-01-12 Thread TP
Hi everybody,

I try to modify locals() as an exercise.
According to the context (function or __main__), it works differently (see
below). Why? Thanks

Julien


def try_to_modify_locals( locals_ ):

locals_[ a ] = 2
print locals_[ 'a' ]=, locals_[ a ]
return locals_

def test_modify_locals():

a = 3
l = try_to_modify_locals( locals() )
print l is locals()
print a

# Below, a remains equal to 3
print test from test_modify_locals()
test_modify_locals()

# But here, it works: a is modified
print test from __main__
a = 3
l = try_to_modify_locals( locals() )
print l is locals()
print a

-- 
python -c print ''.join([chr(154 - ord(c)) for c in '*9(9(18%.\
91+,\'Z4(55l4('])

When a distinguished but elderly scientist states that something is
possible, he is almost certainly right. When he states that something is
impossible, he is very probably wrong. (first law of AC Clarke)
--
http://mail.python.org/mailman/listinfo/python-list


Re: trying to modify locals() dictionary

2009-01-12 Thread Christian Heimes
TP schrieb:
 Hi everybody,
 
 I try to modify locals() as an exercise.
 According to the context (function or __main__), it works differently (see
 below). Why? Thanks

Because http://docs.python.org/library/functions.html#locals

Warning

The contents of this dictionary should not be modified; changes may not
affect the values of local variables used by the interpreter.

Christian

--
http://mail.python.org/mailman/listinfo/python-list


Re: trying to modify locals() dictionary

2009-01-12 Thread Albert Hopkins
On Mon, 2009-01-12 at 19:51 +0100, TP wrote:
 Hi everybody,
 
 I try to modify locals() as an exercise.
 According to the context (function or __main__), it works differently (see
 below). Why? Thanks
 
 Julien

Per the locals() documentation @
http://docs.python.org/library/functions.html

Warning

The contents of this dictionary should not be modified; changes
may not affect the values of local variables used by the
interpreter.




--
http://mail.python.org/mailman/listinfo/python-list