exec with custom dict

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Anand

    exec with custom dict


    Hi,

    I am trying to use exec with custom dict.
    I am trying to print the value of variable x in 2 places. It is
    printing it at the first place and failing at the second place.

    class Env(dict):
    def __getitem__(sel f, key):
    return self.get(key, key)

    code = """
    print x
    def f(): return x
    """

    env = Env()
    exec(code, env)
    print env['f']()

    Here is the output I'm getting.

    x
    Traceback (most recent call last):
    File "a.py", line 14, in <module>
    print env['f']()
    File "<string>", line 3, in f
    NameError: global name 'x' is not defined

    Can somebody explain me what is happening?

    -Anand
Working...