Ulrich Dorda wrote:
I've got a probably embarrassing trivial problem with namespaces, but
couldn't solve it myself nor find an answer in the net. Hopefully one of
you guys can help me.
What I want to do:
Use the interactive shell and e.g define the variable a there.
Then load a module and access a from within.
e.g file "utest.py"
def doit():
print 2*a
in the shell:
import utest
a=3
utest.doit() <- I want this to print 2*a, but of course obtain: <type
exceptions.NameError'>: global name 'a' is not defined
Any change I do to a in the shell should be seen from the doit()
function, any variable assignment I do in the doit() function should be
seen in the shell. I guess it's somehow a namespace sharing.
Actually the function doit() will contain an eval() function that should
evaluate a (via a gui) dynamically inserted expression.
Any one got a clue? (a clue what I try to say and how to help?!)
Thanks a lot in advance!!
Ulrich
Here is one way
#utest.py:
def doit(valuemap):
print 2*valuemap['a']
Python 2.5.1 (r251:54863, Mar 7 2008, 04:10:12)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 4
>>> import utest
>>> utest.doit(locals())
8
>>>
--
http://mail.python.org/mailman/listinfo/python-list