S
Sean Givan
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
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