- 此问题在此处已有答案**:
UnboundLocalError trying to use a variable (supposed to be global) that is (re)assigned (even after first use)(14个答案)
3年前关闭。
test1 = 0
def test_func():
test1 += 1
test_func()
我收到以下错误:
未绑定本地错误:赋值前引用了局部变量"test1"。
错误说'test1'
是局部变量,但我认为该变量是全局变量
那么,它是全局的还是局部的?如何在不将全局test1
作为参数传递给test_func
的情况下解决此错误?
3条答案
按热度按时间qhhrdooz1#
为了在函数内部修改
test1
,需要将test1
定义为全局变量,例如:但是,如果只需要读取全局变量,则可以不使用关键字
global
打印它,如下所示:但是,无论何时需要修改全局变量,都必须使用关键字
global
。o2rvlv0m2#
最佳解决方案:不要使用
global
sgr8qqesn3#
您必须指定test1是全局的: