title: Reading a parent's scope in python
body: <p>Suppose I have a hierarchy of functions, I want to be able to access <em>(not change!)</em> the parents scope. Here is an illustrative example.</p>
  
  <pre><code>def f():
      a = 2
      b = 1
      def g():
          b = 2
          c = 1
          print globals() #contains a=1 and d=4
          print locals() #contains b=2 and c=1, but no a
          print dict(globals(), **locals()) #contains a=1, d=4 (from the globals), b=2 and c=1 (from g)
          # I want a=2 and b=1 (from f), d=4 (from globals) and no c
      g()
  a = 1
  d = 4
  f()
  </code></pre>
  
  <p>Can I access <code>f</code>'s scope from  within <code>g</code>?</p>