test1 = 0
def test_func():
test1 += 1
test_func()
我收到以下错误:
UnboundLocalError:分配前引用的局部变量“test1”。
错误说 'test1'
是局部变量,但我认为这个变量是全局的
那么它是全局的还是本地的,如何在不将全局 test1
作为参数传递给 test_func
的情况下解决这个错误?
原文由 foxneSs 发布,翻译遵循 CC BY-SA 4.0 许可协议
test1 = 0
def test_func():
test1 += 1
test_func()
我收到以下错误:
UnboundLocalError:分配前引用的局部变量“test1”。
错误说 'test1'
是局部变量,但我认为这个变量是全局的
那么它是全局的还是本地的,如何在不将全局 test1
作为参数传递给 test_func
的情况下解决这个错误?
原文由 foxneSs 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答1.9k 阅读✓ 已解决
为了让您修改
test1
在函数内部,您需要将test1
定义为全局变量,例如:但是,如果您只需要读取全局变量,则可以在不使用关键字
global
的情况下打印它,如下所示:但是,每当您需要修改全局变量时,您必须使用关键字
global
。