strange unbound local error?

Pablo Ziliani pablo at decode.com.ar
Sat Sep 29 14:18:23 EDT 2007


righes at arcor.de 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



More information about the Python-list mailing list