赋值之前引用的局部(?)变量[重复]
- 2025-02-13 08:36:00
- admin 原创
- 39
问题描述:
test1 = 0
def test_func():
test1 += 1
test_func()
我收到以下错误:
UnboundLocalError:赋值之前引用了局部变量“test1”。
错误说这'test1'
是局部变量,但我认为这个变量是全局的
那么它是全局的还是局部的,以及如何在不将全局test1
作为参数传递的情况下解决此错误test_func
?
解决方案 1:
为了能够test1
在函数内部进行修改,您需要将其定义test1
为全局变量,例如:
test1 = 0
def test_func():
global test1
test1 += 1
test_func()
但是,如果您只需要读取全局变量,则可以不使用关键字来打印它global
,如下所示:
test1 = 0
def test_func():
print(test1)
test_func()
但是每当您需要修改全局变量时,您必须使用关键字global
。
解决方案 2:
最佳解决方案:不要global
使用
>>> test1 = 0
>>> def test_func(x):
return x + 1
>>> test1 = test_func(test1)
>>> test1
1
解决方案 3:
您必须指定 test1 是全局的:
test1 = 0
def test_func():
global test1
test1 += 1
test_func()
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD