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