On Sep 29, 8:04 pm, [EMAIL PROTECTED] wrote:
> hi folks,
>
> suppose this snipplet:
>
> spam = 42
>
> def eggs():
> print spam
> spam = spam + 1
>
> if __name__=="__main__":
> eggs()
>
> This thows an UnboundLocalError at line 4 (print statement). But if I
> comment out line 5 (variable assignment), no error occurs.
>
> Can you explain me this, please?
>
> Regards,
> Enrico
If you're going to assign to a global variable in a function, you need
to declare it as such:
spam = 42
def eggs():
global spam
print spam
spam = spam + 1
When Python sees an assignment to an identifier in a function it
creates a variable that is local to the function (otherwise you'd be
unable to create local variables with the same name as any of the
global variables).
-- bjorn
--
http://mail.python.org/mailman/listinfo/python-list