Why this throws an UnboundLocalError ?

Mark Lawrence breamoreboy at yahoo.co.uk
Thu Jan 30 17:53:55 EST 2014


On 30/01/2014 22:46, Marc Aymerich wrote:
> Dear all,
>
> I have a very simple module
>
> glic3 at e4200:# cat globalstate.py
> GLOBAL = 0
>
> def update():
>      GLOBAL += 1
>
>
> however it doesn't work!!
>
> glic3 at e4200:# python
> Python 2.7.3 (default, Aug  1 2012, 05:14:39)
> [GCC 4.6.3] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import globalstate
>>>> globalstate.update()
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
>    File "globalstate.py", line 4, in update
>      GLOBAL += 1
> UnboundLocalError: local variable 'GLOBAL' referenced before assignment
>
>
> And I don't know why :(
> Anyone ?
>
> Thanks!!
>

You must tell the update function that GLOBAL is global.

-- 
My fellow Pythonistas, ask not what our language can do for you, ask 
what you can do for our language.

Mark Lawrence




More information about the Python-list mailing list