Re: strange unbound local error?



righes@xxxxxxxx wrote:
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?

Hi Enrico,

You need to say that you will be modifying the variable in the global scope, like this:

spam = 42

def eggs():
global spam # <--here
print spam
spam = spam + 1

if __name__=="__main__":
eggs()


This can help you:
http://www.pasteur.fr/recherche/unites/sis/formation/python/ch04.html


Pablo
.



Relevant Pages