T
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%.\
9&1+,\'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)
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%.\
9&1+,\'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)