[Python-Dev] nested scopes. global: have I got it right?

Guido van Rossum guido@digicool.com
Wed, 28 Feb 2001 20:42:49 -0500


> I didn't want to start a discussion, I was more concerned if I got
> the semantic (that I should impl) right.
> So:
>   x=7
>   def f():
>      x=1
>      def g():
>        global x
>        def h(): return x
>        return h()
>      return g()

and then print f() as main, right?

> will print 1. Ok.
> 
> regards.

Argh!  I honestly don't know what this ought to do.  Under the rules
as I currently think of them this would print 1.  But that's at least
surprising, so maybe we'll have to revisit this.

Jeremy, also please note that if I add "from __future__ import
nested_scopes" to the top, this dumps core, saying: 

    lookup 'x' in g 2 -1
    Fatal Python error: com_make_closure()
    Aborted (core dumped)

Maybe you can turn this into a regular error? <0.5 wink>

> PS: I tried this with a2 and python just died, I imagine, this has
> been fixed.

Seems so. :-)

--Guido van Rossum (home page: http://www.python.org/~guido/)