在赋值之前引用的本地(?)variables
可能重复:
分配前引用的本地var
Python 3:UnboundLocalError:赋值之前引用的局部variables
test1 = 0 def testFunc(): test1 += 1 testFunc()
我收到以下错误:
UnboundLocalError:分配之前引用的局部variables“test1”。
错误说'test1'
是局部variables,但我认为这个variables是全局的
那么它是全球性的还是本地的,如何在不将全局test1
作为parameter passing给testFunc
情况下解决这个错误?
为了在函数内部修改test1
,需要将test1
定义为一个全局variables,例如:
test1 = 0 def testFunc(): global test1 test1 += 1 testFunc()
但是,如果只需要读取全局variables,则可以在不使用关键字global
情况下进行打印,如下所示:
test1 = 0 def testFunc(): print test1 testFunc()
但是,无论何时您需要修改全局variables,您都必须使用关键字global
。
最好的解决scheme:不要使用global
的
>>> test1 = 0 >>> def test_func(x): return x + 1 >>> test1 = test_func(test1) >>> test1 1
你必须指定test1是全局的:
test1 = 0 def testFunc(): global test1 test1 += 1 testFunc()