"Sean Givan" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Hi. I'm new to Python, and downloaded a Windows copy a little while > ago. I was doing some experiments with nested functions, and ran into > something strange. Experiments are good. Strange can be instructive. ... > I'm thinking this is some bug Blaming the interpreter is not so good, but amazingly common among newcomers ;-)
> where the interpreter is getting ahead of itself, ... > Or am I doing something wrong? In a sense, you got ahead of yourself. And the issue has nothing to do with nested scopes per se. When things seem strange, try a simpler experiment. >>> x=1 >>> def f(): print x x = 2 >>> f() Traceback (most recent call last): File "<pyshell#5>", line 1, in -toplevel- f() File "<pyshell#4>", line 2, in f print x UnboundLocalError: local variable 'x' referenced before assignment The compiler compiles functions in two passes: the first to classify names as local or global (or nested if relevant, but not really so here), the second to generate bytecodes which depend on that classification. Terry Jan Reedy -- http://mail.python.org/mailman/listinfo/python-list