On 1/30/14 5:46 PM, Marc Aymerich wrote:
Dear all,

I have a very simple module

glic3@e4200:# cat globalstate.py
GLOBAL = 0

def update():
     GLOBAL += 1


however it doesn't work!!

glic3@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!!


Assignment statements in functions implicitly make local names. If you want to assign a new value to a global name in a function, you have to use a global statement:

def update():
    global GLOBAL
    GLOBAL += 1

--
Ned Batchelder, http://nedbatchelder.com

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to