There are only two scopes in Python -- global scope and function scope. On 4/19/06, Sean Givan <[EMAIL PROTECTED]> wrote: > 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. > > This code: > > def outer(): > val = 10 > def inner(): > print val > inner() > > outer() > > ..prints out the value '10', which is what I was expecting. > > But this code.. > > def outer(): > val = 10 > def inner(): > print val > val = 20 > inner() > print val > > outer() > > ..I expected to print '10', then '20', but instead got an error: > > print val > UnboundLocalError: local variable 'val' referenced before assignment. > > I'm thinking this is some bug where the interpreter is getting ahead of > itself, spotting the 'val = 20' line and warning me about something that > doesn't need warning. Or am I doing something wrong? > > Thanks, > -Sean Givan > -- > http://mail.python.org/mailman/listinfo/python-list >
-- Kelvie -- http://mail.python.org/mailman/listinfo/python-list