问答中心分类: PYTHON局部(?)赋值前引用的变量[重复]
0
匿名用户 提问 18小时 前

这个问题在这里已经有答案了:

从父函数赋值给变量:“赋值前引用的局部变量”[重复]
(5个答案)

Python 3:UnboundLocalError:赋值前引用的局部变量[重复]
(5个答案)

关闭2年前.

test1 = 0
def test_func():
    test1 += 1
test_func()

我收到以下错误:

UnboundLocalError:在赋值之前引用了局部变量“test1”。

错误表明'test1'是局部变量,但我认为这个变量是全局变量
那么它是全局的还是局部的?如何在不传递全局的情况下解决这个错误test1作为参数test_func?

2 Answers
0
jamylak 回答 18小时 前

最佳解决方案:不要使用globals

>>> test1 = 0
>>> def test_func(x):
        return x + 1

>>> test1 = test_func(test1)
>>> test1
1
Jim Raynor 回复 18小时 前

完全同意,你不知道global以后会怎么处理代码:)

Qbik 回复 18小时 前

所以你们不在函数内部修改它,而是创建新的临时变量?

0
Stanislav Heller 回答 18小时 前

您必须指定test1是全局的:

test1 = 0
def test_func():
    global test1
    test1 += 1
test_func()