Local (?) Variable Referenced Before Assignment [Duplicate]
Test1 = 0 Def testFunc(): Test1 += 1 testFunc() I Am Receiving the Following Error: Unboundlocalerror: Local Variable 'Test1' Referenced Before Assignment...
test1 = 0
def testFunc():
test1 += 1
testFunc()
I am receiving the following error:
UnboundLocalError: local variable 'test1' referenced before assignment.
Error says that 'test1' is local variable but i thought that this variable is global
So is it global or local and how to solve this error without passing global test1 as argument to testFunc?
3 Answers
In order for you to modify test1 while inside a function you will need to do define test1 as a global variable, for example:
test1 = 0
def testFunc():
global test1
test1 += 1
testFunc()
However, if you only need to read the global variable you can print it without using the keyword global, like so:
test1 = 0
def testFunc():
print test1
testFunc()
But whenever you need to modify a global variable you must use the keyword global.
Best solution: Don't use globals
>>> test1 = 0
>>> def test_func(x):
return x + 1
>>> test1 = test_func(test1)
>>> test1
1
You have to specify that test1 is global:
test1 = 0
def testFunc():
global test1
test1 += 1
testFunc()